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

dgsult0t  于 2023-01-27  发布在  Java
关注(0)|答案(5)|浏览(138)

所以我试了这个:

if (/^[a-zA-Z]/.test(word)) {
   // code
}

它不接受以下情况:" "
但它确实接受了这一点:"word word",其中包含一个空格:/
有什么好办法吗?

xjreopfe

xjreopfe1#

使用/^[a-zA-Z]/时,只检查第一个字符:

  • ^:Assert字符串开头的位置
  • [a-zA-Z]:匹配下表中的单个字符:
  • a-z:“a”和“z”之间的字符
  • A-Z:“A”和“Z”之间的字符

如果要检查是否所有字符都是字母,请使用以下命令:

/^[a-zA-Z]+$/.test(str);
  • ^:Assert字符串开头的位置
  • [a-zA-Z]:匹配下表中的单个字符:
  • +:介于一次和无限次之间,尽可能多,根据需要回馈(贪婪)
  • a-z:“a”和“z”之间的字符
  • A-Z:“A”和“Z”之间的字符
  • $:Assert字符串末尾的位置(或字符串末尾的换行符之前,如果有的话)

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

/^[a-z]+$/i.test(str);

或者,由于只需要test,而不需要match,因此可以检查相反的情况,然后求反:

!/[^a-z]/i.test(str);
zwghvu4y

zwghvu4y2#

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

if (!/[^a-zA-Z]/.test(word))
l0oc07j2

l0oc07j23#

你需要

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

当前,您正在匹配输入开始处的单个字符。如果您的目标是从头到尾匹配字母字符(一个或多个),则需要重复a-z字符匹配(使用+),并指定要一直匹配到结尾(通过$

pbgvytdp

pbgvytdp4#

试试这个

var Regex='/^[^a-zA-Z]*$/';

 if(Regex.test(word))
 {
 //...
 }

我想这对你会有用的。

kiz8lqtg

kiz8lqtg5#

尝试在模式中添加**\S**
^[阿-扎-z]\S*$

相关问题