Php preg_匹配国际角色和口音
我想验证一个模式只能包含字母(包括带重音的字母)的字符串。这是我使用的代码,它总是返回“nok”。 我不知道我做错了什么,你能帮忙吗?谢谢Php preg_匹配国际角色和口音,php,preg-match,non-ascii-characters,Php,Preg Match,Non Ascii Characters,我想验证一个模式只能包含字母(包括带重音的字母)的字符串。这是我使用的代码,它总是返回“nok”。 我不知道我做错了什么,你能帮忙吗?谢谢 $string = 'é'; if(preg_match('/^[\p{L}]+$/i', $string)){ echo 'ok'; } else{ echo 'nok'; } 将UTF-8(u)添加到表达式中: /^\p{L}+$/ui 也不需要将\p{L}包装在字符类中。我不知道这是否有助于以后检查此问题/线程的任何人。下面
$string = 'é';
if(preg_match('/^[\p{L}]+$/i', $string)){
echo 'ok';
} else{
echo 'nok';
}
将UTF-8(u)添加到表达式中:
/^\p{L}+$/ui
也不需要将
\p{L}
包装在字符类中。我不知道这是否有助于以后检查此问题/线程的任何人。下面的代码只允许字母、重音和空格。没有符号或标点符号,如.,?/>[-<等
<?php
$string = 'États unis and états unis';
if(preg_match('/^[a-zA-Z \p{L}]+$/ui', $string)){
echo 'ok';
} else{
echo 'nok';
}
?>
拒绝提交。谢谢!这让我发疯了,试图得到一个像
/état(.*)/i
试图匹配“états unis”和“états unis”…仅供参考:[a-zA-Z]
已经包含在\p{L}中了
和/i
标志在这里是无用的。问题只涉及字母,没有空格、标点、数字。。。
if (trim($_POST['forminput']) == "") {... some error message ...}