首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP正则表达式。检查字符串是否只包含字母

PHP正则表达式。检查字符串是否只包含字母
EN

Stack Overflow用户
提问于 2010-04-24 16:40:51
回答 5查看 40K关注 0票数 3

在PHP中,如何检查字符串是否只包含字母?我想编写一个if语句,如果存在(空格、数字、符号)或a-zA-Z以外的任何其他内容,则返回false。

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

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

代码语言:javascript
运行
复制
if( ereg("[a-zA-Z]+", $myString))
   return true;
else
   return false;

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

EN

回答 5

Stack Overflow用户

发布于 2010-04-24 16:49:17

是的,这个很好用。谢谢

代码语言:javascript
运行
复制
if(myString.matches("^[a-zA-Z]+$"))
票数 10
EN

Stack Overflow用户

发布于 2010-04-24 16:50:21

您的代码看起来像PHP。如果字符串中有字母,它将返回true。要确保字符串只包含字母,需要使用开始和结束锚点

Java中,您可以使用String类的matches方法:

代码语言:javascript
运行
复制
boolean hasOnlyLetters(String str) {
   return str.matches("^[a-zA-Z]+$");
}

PHP中,函数ereg现在已弃用。您需要使用preg_match作为替代。上述函数的PHP等效项为:

代码语言:javascript
运行
复制
function hasOnlyLetters($str) {
   return preg_match('/^[a-z]+$/i',$str);
}
票数 4
EN

Stack Overflow用户

发布于 2010-04-24 16:56:30

我将有所不同,使用Character.isLetter对字母的定义。

代码语言:javascript
运行
复制
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}字符类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2703785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档