Javascript RegEx不起作用 [英] Javascript RegEx Not Working
问题描述
我有以下javascript代码:
I have the following javascript code:
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
}
}
}
但是,对于任何值,我的regEx测试总是返回false我通过了(02/2010)。我的代码中有什么问题吗?我已经在网上尝试了各种javascript编辑器上的代码,并且工作正常。
However, my regEx test always returns false for any value I pass (02/2010). Is there something wrong in my code? I've tried this code on various javascript editors online and it works fine.
推荐答案
因为你正在创建你的正则表达式一个字符串,你必须加倍你的反斜杠:
Because you're creating your regular expression from a string, you have to double-up your backslashes:
var regEx = new RegExp("^(0[1-9]|1[0-2])/\\d{4}$", "g");
这里没有理由不使用正则表达式语法:
There's really no reason here not to use regular expression syntax instead:
var regEx = /^(0[1-9]|1[0-2])\/\d{4}$/g;
edit —我还注意到有一个嵌入的/字符,如果你使用正则表达式语法,必须引用它。
edit — I also notice that there's an embedded "/" character, which has to be quoted if you use regex syntax.
这篇关于Javascript RegEx不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!