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

javascript regex:仅允许英文字母

  •  25
  • yoda  · 技术社区  · 15 年前

    快速问题:我需要允许输入只接受字母,从A到Z和从A到Z,但找不到任何表达式。我想使用javascript test()方法。

    3 回复  |  直到 9 年前
        1
  •  60
  •   meder omuraliev    15 年前
    /^[a-zA-Z]+$/.test('sfjd')
    

    注意:如果您有任何标点符号或任何东西,这些都是无效的。破折号和下划线无效。 \w 包括a-z a-z和其他一些单词字符。这完全取决于你具体需要什么。

        2
  •  6
  •   Shawn Moore    9 年前

    另一种选择是使用 case-insensitive flag i 那么就不需要额外的字符范围a-z了。

    var reg = /^[a-z]+$/i;
    console.log( reg.test("somethingELSE") ); //true
    console.log( "somethingELSE".match(reg)[0] ); //"somethingELSE"
    

    这里有一个 DEMO 关于这个regex如何与test()和match()一起工作。

        3
  •  -3
  •   vol7ron    9 年前

    如果你不介意这些特殊的角色( "[", "\", "]", "^", "_", "`" )您还可以执行以下操作:

    /^[A-z]+$/.test('string')
    

    var matches = [], special = [];
    
    // Test ASCII characters (0-255)
    for (var i=0,n=255; i < n; i++){
      var char = String.fromCharCode(i);  // get character
      
      if ( /[A-z]/.test(char) ){
        matches.push(char);
        if (!/[a-zA-Z]/.test(char))
          special.push(char);
      }
    }
    
    
    console.log('matches: ', matches);
    console.log('special characters: ', special);

    如果您没有看到 !/[a-zA-Z]/.test(char) ,需要知道将来要从援助中撤走谁;)