2016-07-08 3 views
1

Я пытаюсь сопоставить шаблон в javascript.RegExp не соответствует результатам

Ниже приводится пример:

var pattern = "/^[a-z0-9]+$/i"; // This is should accept on alpha numeric characters. 
var reg = new RegExp(pattern); 
console.log("Should return false : "+reg.test("This $hould return false")); 
console.log("Should return true : "+reg.test("Thisshouldreturntrue")); 

Когда я запускаю это я получаю как результаты, как ложь. Я действительно думаю, что мне не хватает чего-то простого. Но немного запутался.

Заранее спасибо.

ответ

2

Не используйте слэши, если вы используете конструктор RegExp. Вы либо использовать ограждающий слэш без двойных кавычек для обозначения регулярного выражения или передать строку (как правило, заключенную в кавычках) в RegExp конструктору:

var pattern = "^[a-z0-9]+$"; // This is should accept on alpha numeric characters. 
 
var reg = new RegExp(pattern, "i"); 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

0

Вашего шаблон неправильно. Здесь нет необходимости использовать конструктор RegExp. И вам нужен либо флаг флага INNOR, либо добавить заглавные буквы в диапазон.

var reg = /^[a-zA-Z0-9]+$/; 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

Смежные вопросы