我有一个带动态数值的变量patt
var patt = "%"+number+":";
Run Code Online (Sandbox Code Playgroud)
在test()方法中使用它的正则表达式语法是什么?
我一直在使用这种格式
var patt=/testing/g;
var found = patt.test(textinput);
Run Code Online (Sandbox Code Playgroud)
TIA
Mic*_*nXD 21
是的,你几乎拥有它.您只需将正则表达式字符串传递给RegExp构造函数.然后,您可以调用其test()功能.
var matcher = new RegExp("%" + number + ":", "g");
var found = matcher.test(textinput);
Run Code Online (Sandbox Code Playgroud)
希望有帮助:)
您必须使用正则表达式对象而不是正则表达式文字来构建正则表达式.
从您的问题来看,我不确定您的匹配条件是什么,但如果您想将数字与'%'和':'标记相匹配,您可以执行以下操作:
var matcher = new RegExp("%" + num_to_match + ":", "g");
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读更多内容:https: //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp
你走在正确的轨道上
var testVar = '%3:';
var num = 3;
var patt = '%' + num + ':';
var result = patt.match(testVar);
alert(result);
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/jasongennaro/ygfQ8/2/
你不应该使用number.虽然它不是保留字,但它是预定义的类/对象名之一.
你的模式很好,而不会把它变成一个正则表达式的文字.