php - 如何在 UTF-8 中使用 ctype_alpha

标签 php utf-8

如何在 UTF-8 中使用 ctype_alpha?

我有这个代码:

if(empty($_POST) === false) {      
    if (isset($_POST['first_name']) && !empty ($_POST['first_name'])){
        if (ctype_alpha($_POST['first_name']) === false) {
            $errors[] = 'Please enter your First Name with only letters!';
        }   
    }
}

在这里我检查是否一切正常。如果不是,我会收到错误消息。

但是如果我使用像 ščćž - UTF-8 这样的字母,那么我也会出错。那么我该如何解决这个问题呢?我需要名字只有字母,但必须允许使用 ščćž 等 UTF-8 字符。

最佳答案

对拉丁字符使用正则表达式,更改此条件:

if (ctype_alpha($_POST['first_name']) === false)

到:
if (!preg_match('/^[\p{Latin}]+$/u', $_POST['first_name'])

或 - 允许空格:
if (!preg_match('/^[\p{Latin}\s]+$/u', $_POST['first_name'])

关于php - 如何在 UTF-8 中使用 ctype_alpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237987/

相关文章:

php - 检查站点的首次访问

php - 使用复选框进一步过滤 SQL 数据库结果 (PHP)

php - 如何根据当前页面/网址获得 ="selected"类

PHP 根据用户是否有附加文件显示消息(第 3 部分)

python - Python 3.5编码utf-8和utf8的区别

php - "stretch"的 Wordpress 特定方法,(最小高度)等我的页面内容,以便我的页脚后没有空格?

mysql utf-8奇怪的文本问题-排序、删除

c++ - 通过非 unicode 代码读取 UTF-8 Unicode 文件

ruby-on-rails - 将任何编码的字符串强制转换为 UTF-8

asp-classic - 经典 ASP 文本替换和 UTF-8 编码