javascript 中的正则表达式的奇怪工作
我想验证用户输入。 用户只能输入四位数字。我使用 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));
它警告“true”和“false”。 为什么
?
I want validate user input.
User may input four digit only. I use RegExp for checking and see strange work. Javascript not understand \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));
It alerting "true" and "false".
http://jsfiddle.net/HfHDu/
Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
RegExp
构造函数时始终转义\
Always escape
\
when usingRegExp
constructor尝试使用
\\d
代替\d
。Try using using
\\d
in place of\d
.