2010-03-26 2 views
0

Я пытаюсь использовать функцию replace в JavaScript и задать вопрос.JavaScript replace()

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

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

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

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

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

+0

Можете ли вы предоставить простой ввода - вывода простой, что вы дали нам до сих пор только кливер-трескотня – ant

+0

@ c0mrade : его вопрос был достаточно ясным. –

+0

@Bears съедят вас, это было для вас, а не для меня: D – ant

ответ

4

Используйте RegExp объект:

var x = "0"; 
strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(new RegExp("_existing_" + x, "gi"), "existing" + "newCounter"); 
+0

Спасибо. Этот пример помог здесь и был именно тем, что мне нужно. Еще раз спасибо. – d3020

1

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

0

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

вар myregexp = новый RegExp (regexstring, "ГИМС") // первые пары являются шаблоном, второй являются опцией

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

вар myregexp = новый RegExp (»существующих "+ variableThatIsZero,„ГИМС“)

+0

Благодарим вас за пример. Полезно. Благодарю. – d3020

1

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

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

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