如何使用 ctype_alpha 和 UTF-8
How to use ctype_alpha with 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 字符。
对拉丁字符使用正则表达式,更改此条件:
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'])
如何使用 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 字符。
对拉丁字符使用正则表达式,更改此条件:
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'])