我试图在处理它之前将文本字符串验证为日期,但是我试过的正则表达式都抛出了语法错误,我看不出原因。据我所知,两者都没有错。这些是字符串:
var datePattern1 = new RegExp( (0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\d\d );
和
var datePattern2 = new RegExp( [0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2} );
感谢任何帮助。
答案 0 :(得分:12)
您错过了表达式的引号:
var datePattern1 = new RegExp( "(0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\d\d" );
var datePattern2 = new RegExp( "[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}" );
答案 1 :(得分:9)
将darin传递给RegExp
构造函数,或者使用RegExp语法“/ … /
”:
var datePattern1 = /(0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\d\d/;
var datePattern2 = /[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}/;
答案 2 :(得分:3)
Regexp()构造函数需要一个字符串,所以你需要引用你的正则表达式:
var datePattern2 = new RegExp('[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}');
使用双引号时,请注意正则表达式中的反斜杠转义。或者,您可以使用Perl语法:
var datePattern2 = /[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}/;