Как создать шаблон регулярного выражения, который объединяется с переменной, примерно так:
var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));
Благодарность
Ответы:
var re = new RegExp("/\b"+test+"\b/");
\bв строковом литерале - это символ возврата. При помещении регулярного выражения в строковый литерал вам понадобится еще один раунд экранирования:
var re = new RegExp("\\b"+test+"\\b");
(В //этом контексте вам также не нужен .)
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping; есть ли какая-либо справочная информация об этом (причинах)?
В 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))
new. Однако для согласованности с другими объектами, где это может быть неверно, и ясности в целом, я всегда буду использоватьnew.