为什么这些javascript正则表达式抛出语法错误?

Mal*_*ker 4 javascript regex

我试图在处理它之前将文本字符串验证为日期,但是我试过的两个正则表达式都抛出了语法错误,我看不出原因.据我所知,两者都没有错.这些是字符串:

 var datePattern1 = new RegExp( (0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\d\d );
Run Code Online (Sandbox Code Playgroud)

var datePattern2 = new RegExp( [0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2} );
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助.

Dar*_*rov 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}" );
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 9

要么RegExp像darin所提到的那样将字符串传递给构造函数,要么使用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}/;
Run Code Online (Sandbox Code Playgroud)