Javascript Regexp Поиск и замена
Как я могу использовать регулярное выражение javascript для выполнения глобального поиска без учета регистра и замены строки следующим шаблоном:
[media id="5"]
или же [Media id=5]
и полностью заменить на:
http://someurl/?somevar=THE_ID_FROM_THE_PATTERN
В общем, как-то так:
var mystring = '<img src="[media id=5]" />';
Должен быть преобразован в:
var newstring = '<img src="http://someurl/?somevar=5" />';
4 ответа
Решение
Вам нужно захватить число, используя скобки, и добавить его обратно с $1, когда вы замените. Кроме того, основываясь на вашем примере, он должен быть без учета регистра (//i), а кавычки необязательны.
var mystring = '<img src="[media id=5]" />';
var re = /\[media id="?(\d+)"?\]/gi;
mystring.replace(re, "http://someurl/?somevar=$1");
Ты можешь использовать:
var mystring = '<img src="[media id=5]" />';
mystring.replace(/\[media id=5\]/gi, 'http://someurl/?somevar=5').toString();
И / ИЛИ
var mystring = '<img src="[media id=\"5\"]" />';
mystring.replace(/\[media id=\"5\"\]/gi, 'http://someurl/?somevar=5').toString();
Правильный путь, я думаю, был бы примерно таким:
var regexp = /\[[mM]edia\ id\=\"\d+\"\]/g;
var mystring = '<img src="[media id=5]" />';
var newstring = mystring.replace(regexp, "http://someurl/?somevar=$1");