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=/\[media id="5"\]/gi;

Правильный путь, я думаю, был бы примерно таким:

var regexp = /\[[mM]edia\ id\=\"\d+\"\]/g;
var mystring = '<img src="[media id=5]" />';
var newstring = mystring.replace(regexp, "http://someurl/?somevar=$1");
Другие вопросы по тегам