JavaScript replace () - PullRequest
       14

JavaScript replace ()

0 голосов
/ 26 марта 2010

Я пытаюсь использовать функцию замены в JavaScript и у меня есть вопрос.

strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(/_existing_0/gi,
    "_existing_" + "newCounter");

Это работает.

Но мне нужно, чтобы "0" было переменной.

Я пробовал: _ + myVariable + / GI, а также пытался _ + 'myVariable' + / gi

Может кто-нибудь помочь с синтаксисом для этого, пожалуйста. Спасибо.

Ответы [ 4 ]

4 голосов
/ 26 марта 2010

Использовать RegExp объект:

var x = "0";
strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(new RegExp("_existing_" + x, "gi"), "existing" + "newCounter"); 
1 голос
/ 26 марта 2010

Предполагая, что вы хотите, чтобы нулем было любое однозначное число, это должно работать:

y = x.replace(/_existing_(?=[0-9])/gi, "existing" + "newCounter");

Похоже, вы на самом деле пытаетесь создать регулярное выражение с конкатенацией строк - это не сработает. Вместо этого вам нужно использовать форму конструктора RegExp(), чтобы вставить определенную переменную в регулярное выражение: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp

1 голос
/ 26 марта 2010

Вам необходимо использовать RegExp объект . Это позволит вам использовать строковый литерал в качестве регулярного выражения, что, в свою очередь, позволит вам использовать переменные.

0 голосов
/ 26 марта 2010

Если вы используете конструктор RegExp, вы можете определить свой шаблон, используя следующую строку:

var myregexp = new RegExp (regexstring, "gims") // первый параметр - это шаблон, второй - параметры

Так как это строка, вы можете делать такие вещи, как:

var myregexp = new RegExp (" существующий " + variableThatIsZero, "gims")

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