我需要输入验证,良好的输入验证以保持一切清洁。所以我想要一个严格的“全名”正则表达式,国际所以我需要Unicode支持。我下载了 XRegExp,它将“它们的格式”编译为正则表达式并支持 Unicode:
正确名称:
- 约翰·埃尔克杰德
- 安德烈·斯文森
- 马尔科·达尔梅达
- 克里斯托弗拉库尔
不正确的名字:
- 汉斯
- H4nn3 安徒生
- 马丁亨里克森!
所以我需要:
- 匹配 unicode 字母 (a, æ)
- 匹配 unicode 重音符号(á、Ë 等)
- 匹配 unicode 连字符(- _ 等)
在 PHP 中,我可以执行以下操作来匹配:
\p{L} (unicode letter)
\p{Mn} (unicode accents)
\p{Pd} (unicode hyphens)
我发现,我可以用 XRegExp 做:
^\p{L}+$ 将匹配“日本”,因此只有第一个字母有效,但我怎样才能弄清楚如何处理这些 unicode 重音符号,连字符?
感谢帮助。