Я хочу подтвердить ввод пользователя.Пользователь может ввести только четыре цифры.Я использую 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/
Почему?
Всегда экранировать \ при использовании RegExp конструктор
\
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
Попробуйте использовать \\d вместо \d.
\\d
\d