Ответ 1
Вам нужно удвоить escape \
символов в строковых литералах, поэтому литерал регулярного выражения обычно предпочтительнее.
Try:
'Z[\\s\\S]*?Z'
У меня есть некоторые проблемы с этим маленьким кодом JavaScript:
var text="Z Test Yeah ! Z";
// With literal syntax, it returns true: good!
alert(/(Z[\s\S]*?Z)/g.test(text));
// But not with the RegExp object O_o
var reg=new RegExp('Z[\s\S]*?Z','g');
alert(reg.test(text));
Я не понимаю, почему буквальный синтаксис и объект RegExp не дают мне того же результата... Проблема в том, что я должен использовать объект RegExp, так как позже у меня будут некоторые переменные.
Любые идеи?
Заранее спасибо:)
Вам нужно удвоить escape \
символов в строковых литералах, поэтому литерал регулярного выражения обычно предпочтительнее.
Try:
'Z[\\s\\S]*?Z'
Я думаю, это потому, что вам нужно избегать обратной косой черты, даже при использовании одинарных кавычек. Попробуйте следующее:
new RegExp('Z[\\s\\S]*?Z','g')