【问题标题】: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 将为您提供小写字符串,但您可能需要一个正则表达式来解析输入字符串并从中获取字母字符。

标签: php function letters


【解决方案1】:

【讨论】:

  • 不要忘记使用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('/\P{L}/', '', input);
    

    循环查看preg_replaceregex pattern syntax desciption 的文档,尤其是相关的Unicode character classes

    【讨论】:

      【解决方案4】:

      您可以使用php-slugs 源代码,并进行适当的修改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-30
        • 2011-02-09
        • 1970-01-01
        • 2011-07-20
        • 2017-02-14
        • 1970-01-01
        • 1970-01-01
        • 2020-03-10
        相关资源
        最近更新 更多