我遇到了一个我以前用过的正则表达式的奇怪问题。 目标是允许用户输入他的名字,如果需要在php表单中输入字母,连字符和撇号。 我的正则表达是:
"/^[\w\s'àáâãäåçèéêëìíîïðòóôõöùúûüýÿ-]+$/i"
但......一切都被允许但是撇号。逃避它不会改变。为什么呢?
答案 0 :(得分: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