如何使用带有UTF-8的ctype_alpha

时间:2015-05-14 12:56:40

标签: php utf-8

如何将ctype_alpha与UTF-8一起使用?

我有这段代码:

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字符。

1 个答案:

答案 0 :(得分:2)

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

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'])