2013-06-10 7 views
0

У меня возникла странная проблема с регулярным выражением, которое я уже использовал раньше. Цель состоит в том, чтобы позволить пользователю вводить свое имя с буквами, дефисами и апострофами, если необходимо, в форме php. Мои регулярные выражения:regex не может разрешить апостроф

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

Но ... все позволено, но апостроф. Выход из него не изменится. Зачем?

+3

Как представлено оно принимает апострофа. Покажите свою фактическую тестовую строку. – mario

+1

Вы уверены, что ввели правильный апостроф здесь? – raina77ow

+0

ну, моя тестовая строка будет либо «или д'Ив», либо что-то еще. И да, это единственный апостроф, который я могу ввести на клавиатуру, на самом деле тот, который я буду вводить на веб-сайт ... – NightCoder

ответ

3

Чтобы справиться с юникод символов, вы можете сделать:

/^[\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 
+0

Гораздо лучше, так как на самом деле позволяет имена из-за пределов Франции. – Evert

Смежные вопросы