2

我想验证用户输入。用户只能输入四位数字。我使用 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/

为什么?

4

2 回答 2

6

\使用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
于 2011-11-03T12:07:32.853 回答
2

尝试使用 using\\d代替\d.

于 2011-11-03T12:04:12.857 回答