Странная работа RegExp в JavaScript - PullRequest
2 голосов
/ 03 ноября 2011

Я хочу подтвердить ввод пользователя.Пользователь может ввести только четыре цифры.Я использую RegExp для проверки и вижу странную работу.Javascript не понимаю \ d

var expr1 = new RegExp("^\s*[0-9]{4,4}\s*");
var year = "1984";
alert (expr1.test(year));


var expr2 = new RegExp("^\s*\d{4,4}\s*");
alert (expr2.test(year));

Это предупреждает "истина" и "ложь".http://jsfiddle.net/HfHDu/

Почему?

Ответы [ 2 ]

6 голосов
/ 03 ноября 2011

Всегда экранировать \ при использовании RegExp конструктор

var expr1 = new RegExp("^\\s*[0-9]{4,4}\\s*");
var year = "1984";
alert (expr1.test(year)); //true


var expr2 = new RegExp("^\\s*\\d{4,4}\\s*");
alert (expr2.test(year)); //true
2 голосов
/ 03 ноября 2011

Попробуйте использовать \\d вместо \d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...