0

我有以下从本网站找到的正则表达式:

Bt 某处语法不正确并引发错误:

var myDate = /^(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[01])\/(19|20)[0-9]{2};

只是要清楚:

日期可以是 01/01/1900 到 31/12/2099 之间的任何值,但格式应严格:

日/月/年

我知道网络上有几种解决方案,都类似,但不知何故它抛出了 javascript 错误。

可能是语法错误,因为在此之上我已经进行了电子邮件验证,效果很好:

var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
4

1 回答 1

5

来自控制台的消息说

SyntaxError: unterminated regular expression literal

/在行尾缺少 a ,所以应该是

var myDate = /^(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[01])\/(19|20)[0-9]{2}/;

正如评论中所指出的,您可能还打算$/. 这向正则表达式表明您应该匹配字符串的结尾(请参阅 OP 中的电子邮件示例)。

作为旁白; 使用正则表达式验证日期的一般格式是有效且值得的。尝试使用正则表达式验证它是一个实际的、有效的(即,不是 2012 年 2 月 30 日)日期是愚蠢的。能够正确执行此操作的正则表达式将是一页又一页!

于 2013-01-23T12:44:55.170 回答