Найти строку и добавить дополнительно в конце

У меня есть следующая строка.

This is content 
[divider space="123" anything="123"]
more content
[divider space="123"]
some more text or shortcodes

задача состоит в том, чтобы сначала найти строку [divider ad, а затем в то же время найти ] один раз ] найдено добавить [/divider] в конце. Так окончательным выходом станет:

This is content 
[divider space="123" anything="123"][/divider]
more content
[divider space="123"][/divider]
some more text or shortcodes

с помощью следующего кода я могу найти строку.

str = 'This is content[divider space="123" anything="123"][/divider]more content[divider space="123"][/divider] some more text or shortcodes';
str = str.match(divider(.*)]");

как я могу найти первую строку, а затем вторую строку и добавить что-то [/divider] после этого.

1 ответ

  1. Вы можете использовать replaceфункцию и передать функцию внутрь

    $("p").html($("p").html().replace(/\[divider ([a-z]+\="\d+"\s?)+\]/g, s => s + "[/divider]" ));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <p>
    This is content 
    [divider space="123" anything="123"]
    more content
    [divider space="123"]
    some more text or shortcodes
    </p>