我有以下javascript代码:
function checkLegalYear() {
var val = "02/2010";
if (val != '') {
var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
if (regEx.test(val)) {
//do something
}
else {
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,对于我传递的任何值,我的regEx测试总是返回false(02/2010).我的代码中有什么问题吗?我已经在网上的各种javascript编辑器上尝试了这个代码,它运行正常.
Poi*_*nty 52
因为您是从字符串创建正则表达式,所以必须加倍反斜杠:
var regEx = new RegExp("^(0[1-9]|1[0-2])/\\d{4}$", "g");
Run Code Online (Sandbox Code Playgroud)
这里没有理由不使用正则表达式语法:
"^(0[1-9]|1[0-2])/\d{4}$"
Run Code Online (Sandbox Code Playgroud)
编辑 - 我还注意到有一个嵌入的"/"字符,如果你使用正则表达式语法必须引用它.