javascript查找并替换字符串中的动态模式

时间:2011-10-16 17:26:16

标签: javascript regex replace match

我有一个动态模式,我一直在使用下面的代码来查找

var matcher = new RegExp("%" + dynamicnumber + ":", "g");
var found = matcher.test(textinput);

我需要这个模式有一个新的要求,即包括y或n的额外尾随的5个字符。然后将其删除或替换为''(无)。

我为模式尝试了这种语法,但显然它不起作用。

var matcher = new RegExp("%" + dynamicnumber + ":"  + /([yn]{5})/, "g");

赞赏任何提示

TIA。

3 个答案:

答案 0 :(得分:2)

var matcher = new RegExp("(%" + number + ":)([yn]{5})", "g");

然后将其替换为第一个捕获组的内容。

答案 1 :(得分:2)

使用引号而不是斜杠:

var matcher = new RegExp("%" + number + ":([yn]{5})", "g");

另外,请确保dynamicnumbernumber 有效 RegExps。特殊字符必须以双斜杠\\作为前缀,文字双斜杠必须写成四个斜杠:\\\\

答案 2 :(得分:2)

您应该只将正则表达式字符串传递给RegExp c'tor:

var re = new RegExp("%" + number + ":"  + "([yn]{5})", "g");