php - preg_match 与国际字符和口音

标签 php preg-match non-ascii-characters

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

$string = 'é';

if(preg_match('/^[\p{L}]+$/i', $string)){

    echo 'ok';

} else{

    echo 'nok';
}

最佳答案

添加 UTF-8 modifier flag (u) 到你的表情:

/^\p{L}+$/ui

也不需要将 \p{L} 包裹在字符类中。

关于php - preg_match 与国际字符和口音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11649019/

相关文章:

php - 如何 preg_match 第一次出现在字符串中

python - python 3中使用非ascii字符进行编码/解码的问题

java - JPA CriteriaQuery - 重音不敏感

PHP 数组更新多个 Mysql 行

php - 使用 mpdf 和 chart.js 创建 PDF

php - strtotime 和 date 输出不正确

php - Symfony2 : FOSUserBundle - Single firewall, 多个登录表单/入口点

php - 从文本中提取 4 位数字

symfony - 如何在 Twig 中进行 preg_replace

ruby - 如何检查字符串是否包含带重音的拉丁字符,如 Ruby 中的 é?