Javascript RegEx不起作用

min*_*int 20 javascript regex

我有以下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)

编辑 - 我还注意到有一个嵌入的"/"字符,如果你使用正则表达式语法必须引用它.

  • 谢谢,只是浪费了30分钟。 (2认同)