Подтвердить что ты не робот

JavaScript-шаблон регулярного выражения конкатенат с переменной

Как создать шаблон регулярного выражения, который объединяется с переменной, примерно так:

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

Спасибо

4b9b3361

Ответ 1

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

\b в строковом литерале является символом обратного пробела. При установке регулярного выражения в строковый литерал вам потребуется еще один раунд экранирования:

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

(В этом контексте вам также не нужен //.)

Ответ 2

вы можете использовать

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

но я предлагаю использовать

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

Ответ 3

В ES5 вы можете использовать шаблонные литералы при создании 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))
// prints array of ['53']