与变量连接的 JavaScript 正则表达式模式

如何创建与变量连接的正则表达式模式,如下所示:

var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));

Thanks

97556 次浏览
var re = new RegExp("/\b"+test+"\b/");

字符串中的 \b是一个退格字符。在字符串文字中放入正则表达式时,您需要再进行一轮转义:

var re = new RegExp("\\b"+test+"\\b");

(在这种情况下,您也不需要 //。)

你可以利用

/(^|,)52(,|$)/.test('51,52,53')

but i suggest to use

var list = '51,52,53';
function test2(list, test){
return !((","+list+",").indexOf(","+test+",") === -1)
}
alert( test2(list,52) )

通过 ES2015(又名 ES6) ,你可以在构建 RegExp时使用 模板文字:

let test = '53'
const regexp = new RegExp(`\\b${test}\\b`, 'gi') // showing how to pass optional flags
console.log('51, 52, 53, 54'.match(regexp))