所以我尝试了这个:
if (/^[a-zA-Z]/.test(word)) {
// code
}
它不接受这个:" "
但它确实接受了这个:"word word"
,它确实包含一个空格:/
有没有好办法呢?
答案 0 :(得分:80)
使用/^[a-zA-Z]/
,您只需检查第一个字符:
^
:断言字符串开头的位置[a-zA-Z]
:匹配下面列表中的单个字符:
a-z
:“a”和“z”A-Z
:“A”和“Z”之间范围内的字符如果要检查所有字符是否都是字母,请改用:
/^[a-zA-Z]+$/.test(str);
^
:断言字符串开头的位置[a-zA-Z]
:匹配下面列表中的单个字符:
+
:在一次和无限次之间,尽可能多地根据需要回馈(贪婪)a-z
:“a”和“z”A-Z
:“A”和“Z”之间范围内的字符$
:断言字符串末尾的位置(或在字符串末尾的换行符之前,如果有的话)或者,使用不区分大小写的标记i
,您可以将其简化为
/^[a-z]+$/i.test(str);
或者,既然你只想test
而不是match
,你可以检查相反的情况,并否定它:
!/[^a-z]/i.test(str);
答案 1 :(得分:7)
你需要
/^[a-zA-Z]+$/
目前,您在输入的开头匹配单个字符。如果你的目标是从头到尾匹配字母字符(一个或多个),那么你需要重复az字符匹配(使用+
)并指定你想要一直匹配到最后(通过$
)
答案 2 :(得分:6)
最快的方法是检查是否有非字母:
if (!/[^a-zA-Z]/.test(word))
答案 3 :(得分:-1)
尝试在您的模式中添加 \ S
^ [A-ZA-Z] \ S * $
答案 4 :(得分:-1)
试试这个
yc
我认为这对你有用。