检查字符串是否仅包含javascript中的字母

Den*_*svB 37 javascript regex

所以我尝试了这个:

if (/^[a-zA-Z]/.test(word)) {
   // code
}
Run Code Online (Sandbox Code Playgroud)

它不接受这个: " "

但它确实接受了这个:"word word"它确实包含一个空格:/

有没有办法做到这一点?

Ori*_*iol 93

有了/^[a-zA-Z]/你只检查的第一个字符:

  • ^:断言字符串开头的位置
  • [a-zA-Z]:匹配下面列表中的单个字符:
    • a-z:"a"和"z"之间范围内的字符
    • A-Z:"A"和"Z"之间的字符

如果要检查所有字符是否都是字母,请改用:

/^[a-zA-Z]+$/.test(str);
Run Code Online (Sandbox Code Playgroud)
  • ^:断言字符串开头的位置
  • [a-zA-Z]:匹配下面列表中的单个字符:
    • +:在一次和无限次之间,尽可能多,根据需要回馈(贪婪)
    • a-z:"a"和"z"之间范围内的字符
    • A-Z:"A"和"Z"之间的字符
  • $:断言字符串末尾的位置(或者在字符串末尾的换行符之前,如果有的话)

或者,使用不区分大小写的标志i,您可以将其简化为

/^[a-z]+$/i.test(str);
Run Code Online (Sandbox Code Playgroud)

或者,既然你只想test,而不是match,你可以检查相反的,并否定它:

!/[^a-z]/i.test(str);
Run Code Online (Sandbox Code Playgroud)


JDB*_*JDB 8

你需要

/^[a-zA-Z]+$/
Run Code Online (Sandbox Code Playgroud)

目前,您在输入的开头匹配单个字符.如果你的目标是从头到尾匹配字母字符(一个或多个),那么你需要重复az字符匹配(使用+)并指定你想要一直匹配到结尾(通过$)


Cas*_*yte 6

最快的方法是检查是否有非字母:

if (!/[^a-zA-Z]/.test(word))
Run Code Online (Sandbox Code Playgroud)

  • @wrangler:不,如果你这样写,你只会检查字符串是否不以字母开头。 (3认同)