代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

仅用于字符a-z、a-z的正则表达式

  •  24
  • Shantanu Gupta  · 技术社区  · 16 年前

    我不知道如何在javascript或jquery中创建正则表达式。

    我想创建一个正则表达式,它将检查字符串是否只包含a-z和a-z之间的字符,并且有任何排列。

    编辑

    当我试着做regex的时候

    /^[a-zA-Z\s]+$/
    

    也接受空白。它不工作。可能是什么错误?

    我正在测试正则表达式 JavaScript RegExp Example: Online Regular Expression Tester .

    4 回复  |  直到 8 年前
        1
  •  59
  •   NullUserException Mark Roddy    16 年前
    /^[a-zA-Z]*$/
    

    改变 * 到 + 如果不想允许空匹配。

    参考文献:

    Character classes ( [...] ) , Anchors ( ^ and $ ) , Repetition ( + , * )

    这个 / 只是分隔符,它表示regex的开始和结束。现在你可以使用这个 modifiers 关于它。

        2
  •  23
  •   Hooray Im Helping codaddict    11 年前

    利用其他答案所说的内容,因为您根本不知道如何做,下面是一个在javascript中如何做的示例:

    var charactersOnly = "This contains only characters";
    var nonCharacters = "This has _@#*($()*@#$(*@%^_(#@!$ non-characters";
    
    if (charactersOnly.search(/[^a-zA-Z]+/) === -1) {
      alert("Only characters");
    }
    
    if (nonCharacters.search(/[^a-zA-Z]+/)) {
      alert("There are non characters.");
    }
    

    这个 / 开始和结束正则表达式表示它是正则表达式。这个 search 函数同时接受字符串和正则表达式,因此 / 必须指定regex。

    从 the MDN Docs ,函数返回 -1 如果没有匹配。

    另请注意:这适用于 只有 A-Z,A-Z。如果有空格,它将失败。

        3
  •  8
  •   Ollie Edwards    16 年前
    /^[a-zA-Z]+$/ 
    

    从我的头顶上。

    编辑:

    或者如果你不喜欢奇怪的字面句法,你可以这样做

    new RegExp("^[a-zA-Z]+$");
    
        4
  •  2
  •   Waruyama    8 年前

    对于posix括号表达式(javascript不支持),可以这样做:

    /[:alpha:]+/
    

    任何字母a到z或a到z。

    或

    /^[[:alpha:]]+$/s
    

    与空格严格匹配。