0

我之前已经使用过的正则表达式遇到了一个奇怪的问题。目标是允许用户输入他的姓名,如果需要,可以在 php 表单中使用字母、连字符和撇号。我的正则表达式是:

 "/^[\w\s'àáâãäåçèéêëìíîïðòóôõöùúûüýÿ-]+$/i"

但是……除了撇号之外,一切都是允许的。逃避它不会改变。为什么?

4

1 回答 1

3

要处理 unicode 字符,您可以执行以下操作:

/^[\pN\pL\pP\pZ]+$/

在哪里:

\pN  stands for any number
\pL  stands for any letter
\pP  stands for any punctuation
\pZ  stands for any space

它匹配如下名称:

d'Alembert  
d’Alembert    (note the different apos from above)
Jean-François
O'Connors
于 2013-06-11T08:50:14.983 回答