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

2022-08-30 05:29:51

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

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

谢谢


答案 1
var re = new RegExp("/\b"+test+"\b/"); 

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

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

(在此上下文中也不需要 。//


答案 2

使用 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))