javascript中的正则表达式 - 无法正常工作

use*_*973 0 javascript regex validation comparison date

我在本网站上发现了以下正则表达式:

在某处语法不正确,它会抛出错误:

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

只是要清楚:

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

DD/MM/YYYY

我知道网上有几个解决方案,所有类似但不知何故它抛出javascript错误.

可能是语法错误,因为就在上面我已经把电子邮件验证工作正常:

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

Jam*_*iec 5

来自控制台的消息说

SyntaxError: unterminated regular expression literal

你错过了/一行,所以它应该是

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

正如评论中所指出的那样,你可能还打算$在最后提出一个/.这表示正则表达式应该匹配字符串的结尾(请参阅稍后在OP中的电子邮件示例).

作为旁白; 使用正则表达式验证日期的一般格式是有效且值得的.尝试使用正则表达式验证它是真实的,有效的(即,不是2012年2月30日)日期是barmy.能够正确完成它的正则表达式将是页面长的页面!