代码之家  ›  专栏  ›  技术社区  ›  Mamun

匹配后跟not数字的任何字符

  •  3
  • Mamun  · 技术社区  · 7 年前

    var pattern = /sample(?!\d)/;
    console.log(pattern.test("sample324")); //false
    var pattern = /[a-z]+(?!\d)/;
    console.log(pattern.test("sample324")); //true but expect false

    提前谢谢。

    2 回复  |  直到 7 年前
        1
  •  5
  •   anubhava    7 年前

    问题是 [a-z]+(?!\d) 将允许它匹配任何不后跟数字的1+字符,因此它将匹配 sampl 在您的输入中,下一个位置的非数字断言令人满意。

    您可以将此正则表达式与负前瞻一起使用:

    /^(?!.+\d)/
    

    如果输入中任何字符的1+之后出现数字,则匹配将失败。

    RegEx Demo

    对于 ,您也可以使用此正则表达式:

    /^(?!\D+\d)/
    

    如果有1+个非数字后跟一个数字,则失败 在任何地方 输入。

        2
  •  0
  •   rc_dz    7 年前

    我认为这可能有效:

    var pattern = /[^0-9]/.test('mystring9')