我有一个动态模式,我一直在使用下面的代码来查找
var matcher = new RegExp("%" + dynamicnumber + ":", "g");
var found = matcher.test(textinput);
我需要这个模式有一个新的要求,即包括y或n的额外尾随的5个字符。然后将其删除或替换为''(无)。
我为模式尝试了这种语法,但显然它不起作用。
var matcher = new RegExp("%" + dynamicnumber + ":" + /([yn]{5})/, "g");
赞赏任何提示
TIA。
答案 0 :(得分:2)
var matcher = new RegExp("(%" + number + ":)([yn]{5})", "g");
然后将其替换为第一个捕获组的内容。
答案 1 :(得分:2)
使用引号而不是斜杠:
var matcher = new RegExp("%" + number + ":([yn]{5})", "g");
另外,请确保dynamicnumber
或number
有效 RegExps。特殊字符必须以双斜杠\\
作为前缀,文字双斜杠必须写成四个斜杠:\\\\
。
答案 2 :(得分:2)
您应该只将正则表达式字符串传递给RegExp c'tor:
var re = new RegExp("%" + number + ":" + "([yn]{5})", "g");