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


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

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

спасибо

2 65

2 ответа:

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

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

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

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

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

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

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

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