在PHP中,如何检查字符串是否只包含字母?我想编写一个if语句,如果存在(空格、数字、符号)或a-z和A-Z以外的任何其他内容,则返回false。
我的字符串必须只包含字母。
我认为我可以这样做,但我做错了:
if( ereg("[a-zA-Z]+", $myString))
return true;
else
return false;如何确定myString是否只包含字母?
发布于 2010-04-24 16:49:17
是的,这个很好用。谢谢
if(myString.matches("^[a-zA-Z]+$"))发布于 2010-04-24 16:50:21
您的代码看起来像PHP。如果字符串中有字母,它将返回true。要确保字符串只包含字母,需要使用开始和结束锚点
在Java中,您可以使用String类的matches方法:
boolean hasOnlyLetters(String str) {
return str.matches("^[a-zA-Z]+$");
}在PHP中,函数ereg现在已弃用。您需要使用preg_match作为替代。上述函数的PHP等效项为:
function hasOnlyLetters($str) {
return preg_match('/^[a-z]+$/i',$str);
}发布于 2010-04-24 16:56:30
我将有所不同,使用Character.isLetter对字母的定义。
if (myString.matches("\\p{javaLetter}*"))请注意,这不仅仅与[A-Za-z]*匹配。
如果字符的常规类别类型(由
Character.getType(ch)提供)是以下任一类型,则该字符被视为字母: UPPERCASE_LETTER、LOWERCASE_LETTER、TITLECASE_LETTER、MODIFIER_LETTER、OTHER_LETTER
不是所有的字母都有大小写。许多字符都是字母,但既不是大写,也不是小写,也不是大小写。
在Pattern API中定义了\p{javaXXX}字符类。
https://stackoverflow.com/questions/2703785
复制相似问题