Okai所以我已经拥有regular expression
我网站上允许的姓名。
但是,我还希望添加其他名称使用的可能字母。
有人有一个好regex
或知道如何让这更完整吗?我已经搜索了很长一段时间,但我找不到任何适合我需要的东西。
这是我目前用于检查姓名的regex
:
$regex = "/^([a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-])+$/";
if(preg_match($regex, $fullname)){
// do something
}
答案 0 :(得分:4)
正如Lucas Trzesniewski所提到的,\p{L}
将包含[a-zA-Z]
,因此我已从模式中移除。
因此,组合您在示例中包含的字符列表;模式将如下所示/^[\p{L}\s,.'-]+$/u
^[]+$
匹配从开始到结束的字符串,因此+
也意味着需要匹配一个或多个
\p{L}
匹配unicode字符
\s,.'-
匹配空格,逗号,句号,单引号和短划线
u
PCRE_UTF8
修饰符,此修饰符会启用与Perl不兼容的PCRE的其他功能。
if(preg_match("/^[\p{L}\s,.'-]+$/u", "お元気ですか你好吗how are you你好嗎,.'-") === 1) {
echo "match";
}
else {
echo "no match";
}
// match
if(preg_match("/^[\p{L}\s,.'-]+$/u", "お元気ですか你好吗how are you你好_嗎-,.'") === 1) {
echo "match";
}
else {
echo "no match";
}
// no match as there are underscore in 你好_嗎