2016-07-17 4 views
1

У меня возникла проблема с построением регулярного выражения из переменной.Javascript regex test от переменной

var a = '.playlist-item:nth-child(2n+1)'; 
var selector = /.playlist-item:nth-child\(2n\+1\)/g; 
var s = '.playlist-item:nth-child\(2n\+1\)'; 

console.log(selector.test(a))//true 

var reg = new RegExp(s,"g"); 
console.log(reg.test(a))//false 

Вторая ложь, потому что у меня есть строковые кавычки вокруг нее (я думаю), как мне создать регулярное выражение из строки?

https://jsfiddle.net/eq3eu2e8/1/

+2

Вы должны использовать двойной \ в регулярном строке выражения: '.» плейлиста-пункт: п-й ребенок \\ (2n + 1 \\ \\) ' ' – Pointy

ответ

2

Для строки вы должны использовать два раз подряд, если вы хотите, чтобы включить их в строке:

var a = '.playlist-item:nth-child(2n+1)'; 
var selector = /.playlist-item:nth-child\(2n\+1\)/g; 
var s = '.playlist-item:nth-child\\(2n\\+1\\)'; 

console.log(selector.test(a)); //true 

var reg = new RegExp(s,"g"); 
console.log(reg.test(a)); //false 
Смежные вопросы