带有国际字符和口音的preg_match
2022-08-30 21:45:38
我想验证一个字符串,其模式只能包含字母(包括带重音符号的字母)。这是我使用的代码,它总是返回“nok”。我不知道我做错了什么,你能帮忙吗?谢谢
$string = 'é';
if(preg_match('/^[\p{L}]+$/i', $string)){
echo 'ok';
} else{
echo 'nok';
}
我想验证一个字符串,其模式只能包含字母(包括带重音符号的字母)。这是我使用的代码,它总是返回“nok”。我不知道我做错了什么,你能帮忙吗?谢谢
$string = 'é';
if(preg_match('/^[\p{L}]+$/i', $string)){
echo 'ok';
} else{
echo 'nok';
}
我不知道这是否有助于以后检查此问题/线程的任何人。下面的代码只允许使用字母、重音符号和空格。没有符号或标点符号,如.,?/>[-<等。
<?php
$string = 'États unis and états unis';
if(preg_match('/^[a-zA-Z \p{L}]+$/ui', $string)){
echo 'ok';
} else{
echo 'nok';
}
?>
如果你也想加数字,只需在Z之后立即添加0-9,就像这个a-zA-Z0-9一样
然后,如果您将其应用于表单验证,并且您担心客户端/用户可能只是点击空格键并提交,只需使用:
if (trim($_POST['forminput']) == "") {... some error message ...}
以拒绝提交。