Этот код Метеор не соответствует регулярному выражению для строки и создает true в условном выражении if. Что я делаю не так? как это исправить? Благодаряjavascript regex не соответствует заданной строке
console.log(doc.valid);
console.log(doc.value);
var patt = new RegExp(doc.valid);
console.log(patt);
if (patt.test(doc.value)) {
console.log("match");
} else {
console.log("no match");
}
//meteor terminal
I20160313-08:06:53.143(11)? /[0-9a-zA-Z]{1,6}/g
I20160313-08:06:53.144(11)? ok
I20160313-08:06:53.144(11)? //[0-9a-zA-Z]{1,6}/g/
I20160313-08:06:53.145(11)? no match
отредактирован применяется исправление, как предложено в комментариях, но регулярное выражение соответствует строке, не предполагают, чтобы соответствовать.
var patt = new RegExp(doc.valid);
console.log('applying '+ patt+ ' to '+ doc.value);
if (patt.test(doc.value, "g")) {
console.log(doc.value + " match");
} else {
console.log(doc.value + "no match");
}
I20160313-08:48:26.717(11)? applying /[0-9a-zA-Z]{1,6}/ to Kingkong
I20160313-08:48:26.717(11)? Kingkong match <..8 char.not suppose to match
Если вы хотите совместить всю строку, будьте откровенны в ней с помощью маркеров начала и конца ('/^str $ /'). – MasterAM