代码之家  ›  专栏  ›  技术社区  ›  chuck taylor

javascript\d正则表达式意外行为

  •  0
  • chuck taylor  · 技术社区  · 16 年前

    我正在尝试使用javascript正则表达式来进行一些匹配,我发现了一个非常不寻常的行为,我希望有人能够解释。

    我试图匹配的字符串是:“0(IR)”,代码块是

    finalRegEx = new RegExp("[0-9]");
    match = finalRegEx.exec(str);
    

    只是当我把“\d”改为“[0-9]”时,它没有找到匹配项。我真的被这搞糊涂了。

    3 回复  |  直到 16 年前
        1
  •  4
  •   Gumbo    16 年前

    如果你使用 正则表达式 具有 "\d" 要构建正则表达式 “\d” 只会导致 "d" . 或者用两个反斜杠来避开斜杠 "\\d" 或者干脆用 regular expression literals /…/ 取而代之的是:

    match = /\d/.exec(str)
    
        2
  •  3
  •   meder omuraliev    16 年前

    d 字面意思:

    new RegExp('\\d').test('1')
    

    new RegExp 只能用于动态匹配。否则使用文字:

    var foo = /\d/;
    foo.test(1)
    
        3
  •  0
  •   Dan Breen    16 年前

    您可能需要避开反斜杠: finalRegEx = new RegExp("\\d");