Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_匹配国际角色和口音_Php_Preg Match_Non Ascii Characters - Fatal编程技术网

Php preg_匹配国际角色和口音

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}包装在字符类中。我不知道这是否有助于以后检查此问题/线程的任何人。下面

我想验证一个模式只能包含字母(包括带重音的字母)的字符串。这是我使用的代码,它总是返回“nok”。 我不知道我做错了什么,你能帮忙吗?谢谢

$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 ...}