奇怪的工作RegExp在JavaScript中

Gra*_*Dea 2 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));
Run Code Online (Sandbox Code Playgroud)

它警告"真实"和"虚假". http://jsfiddle.net/HfHDu/

为什么?

Nar*_*ala 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
Run Code Online (Sandbox Code Playgroud)