PHP:是不是有 isLetter() 函数或等效函数?
Posted
技术标签:
【中文标题】PHP:是不是有 isLetter() 函数或等效函数?【英文标题】:PHP: is there an isLetter() function or equivalent?PHP:是否有 isLetter() 函数或等效函数? 【发布时间】:2012-04-01 01:45:51 【问题描述】:我不是 php 专家。我正在寻找与 Java 中的 isLetter() 等效的 PHP,但我找不到它。存在吗?
我需要从给定字符串中提取字母并将它们设为小写,例如:“Ap.ér4i5T i6f;”应该给出“apéritif”。所以,是的,我的字符串中有重音字符。
【问题讨论】:
strtolower
将为您提供小写字符串,但您可能需要一个正则表达式来解析输入字符串并从中获取字母字符。
【参考方案1】:
ctype_alpha()
.
【讨论】:
不要忘记使用setlocale()
,因为在默认的 C 语言环境中,只有 [a-zA-Z] 将被视为字母字符(无重音字符)【参考方案2】:
除了 regex / preg_replace,如果您需要将字符串通用大写,还可以使用 strtoupper($string) 和 strtolower($string)。正如 Konrad 提到的,preg_replace 可能是您最好的选择。
http://php.net/manual/en/function.strtoupper.php
http://www.php.net/manual/en/function.strtolower.php
【讨论】:
【参考方案3】:在 PHP(和 Java)中,您不会使用 isLetter
来实现它,您宁愿使用正则表达式替换所有不是字母的字符:
echo preg_replace('/\PL/', '', input);
循环查看preg_replace
和regex pattern syntax desciption 的文档,尤其是相关的Unicode character classes。
【讨论】:
【参考方案4】:您可以使用php-slugs 源代码,并进行适当的修改。
【讨论】:
以上是关于PHP:是不是有 isLetter() 函数或等效函数?的主要内容,如果未能解决你的问题,请参考以下文章
Matlab 中是不是有 splat 运算符(或等效运算符)?
C++/Java/Python 中的 PHP imagettftext() 等效函数