Как автоматически вставить предопределенный текст в строку в позициях, определяемых регулярным выражением - PullRequest
0 голосов
/ 02 июля 2010

Я бы хотел использовать javascript для поиска строки и автоматической вставки закрывающего тега перед каждым появлением открывающего тега.Вот тестовый код, который я создал до сих пор:

var str="<span>this <i>is</i> a <i>test</i></span>";
var patt1=/<(?!span)\b\w+>/g;
var patt2=/<\/(?!span)\b\w+>/g;
document.write(str.replace(patt1, '</b>' + str.match(patt1)));

Я успешно получил регулярное выражение в "patt1" для представления любого открывающего тега, кроме span."str.match (patt1)" явно не работает, так как он выводит массив всех значений в строке, представленной регулярным выражением.Но есть ли способ вспомнить каждый конкретный элемент, который заменяется, чтобы я мог использовать измененную версию приведенного выше кода, чтобы по существу выступать в качестве инструмента для вставки?

1 Ответ

0 голосов
/ 02 июля 2010

Используйте группу захвата в регулярном выражении и обратную ссылку в замене:

var patt1=/<(?!span)\b(\w+)>/g;
str.replace(patt1, '</$1>$&')

$1 в строке замены выводит первую группу захвата, а $ & выводит всю совпадающую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...