奇怪的工作RegExp在JavaScript中

时间:2011-11-03 12:01:22

标签: javascript regex digit

我想验证用户输入。 用户只能输入四位数。我使用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 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

尝试使用\\d代替\d