写入正则表达式的动态变量

dynamic variable written into regular expression

本文关键字:动态 变量 正则表达式      更新时间:2023-09-26

我有一个简单的正则表达式:

str.match(/SK=(['w‌​'-]+)/i);

我希望SK部分是动态的,这样我就可以返回SK=, WP=等的匹配…

所以我要找的是:

var attr = 'SK';
str.match(/' + attr  + '=(['w‌​'-]+)/i);

使用构造函数语法创建正则表达式:

var myRegex = new RegExp(attr + "([''w‌​''-]+)","i");

然后:

str.match(myRegex);

请看这里(强调我的):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

文字表示法在计算正则表达式时提供正则表达式的编译。当正则表达式将保持不变时使用文字表示法。例如,如果使用文字表示法来构造循环中使用的正则表达式,则正则表达式不会在每次迭代时重新编译。

正则表达式对象的构造函数,例如new RegExp("ab+c"),提供正则表达式的运行时编译。当您知道正则表达式模式将改变时,或者您不知道模式并且从其他源(例如用户输入)获取模式时,请使用构造函数。