PHP正则表达式.检查String是否仅包含字母

use*_*514 2 php regex string

在PHP中,如何检查String是否只包含字母?我想写一个if语句,如果有(空格,数字,符号)或除了a-z和之外的任何其他内容,将返回false A-Z.

我的字符串必须只包含字母.

我以为我可以这样做,但我做错了:

if( ereg("[a-zA-Z]+", $myString))
   return true;
else
   return false;
Run Code Online (Sandbox Code Playgroud)

如何确定是否myString只包含字母?

use*_*514 10

是的,这很好.谢谢

if(myString.matches("^[a-zA-Z]+$"))
Run Code Online (Sandbox Code Playgroud)


Car*_*icz 8

从来没有听说过ereg,但我猜它会在子串上匹配.

在这种情况下,您希望在正则表达式的任一端包含锚点,以便强制匹配整个字符串:

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

此外,您可以简化您的阅读功能

return ereg("^[a-zA-Z]+$", $myString);
Run Code Online (Sandbox Code Playgroud)

因为if要返回true或者false已经是布尔值是多余的.


或者,您可以匹配任何不是字母的字符,并返回结果的补码:

return !ereg("[^a-zA-Z]", $myString);
Run Code Online (Sandbox Code Playgroud)

请注意^字符集的开头,它反转它.另请注意,您不再需要+它,因为单个"坏"字符将导致匹配.


最后......这个建议是针对Java的,因为你Java的问题上有一个标签.但是,$$myString使它看起来像你正在处理的,也许Perl或PHP?一些澄清可能会有所帮助.