2011-12-15 2 views
2

У меня проблема с регулярным выражением, которое позволяет мне указывать имя, если можно сказать, что учреждение, которое может содержать специальные символы для других языков, пробелов и - char. Я знаю, что выражение я создал:Zend - Regex разрешить символы пробелов и юникодов

/^[a-zA-Z- "\']*$/ 

позволит символы от а до г и -»символы и пробелы Но когда я типа żźćąś или других языках специальные символы строка не является допустимым, но я хочу. чтобы быть действительным

второго выражения, которое я создал:..

/^[^\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\`\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0\\_\\+\\=\\{\\}\\:\\"\\;\\\\\<\\>\\?\\,\\.\\/\ ]*$/ 

позволяет а-я символы без символов запрещенных выше но я не запрещаю белое пространство в регулярном выражении выше, но, когда я что-то типа с пространством, как, что, например:

"Bielsko Biała"

Его не действительны, но когда я типа вместе:

"BielskoBiała"

действительно с характером. Поэтому я хотел бы разрешить специальные символы, такие как żźćąśł и другие, с других языков, но также хотел бы разрешить пробелы, и я не знаю, как это сделать.

Когда я использовал Альфа валидатор это было нормально но не стоит позволять ставить -»символы, которые я также хочу, чтобы

ответ

2

Во-первых, вы должны включить поддержку UTF-8 с помощью переключателя u Затем вы можете.. матч Юникода буквы с последовательностью \pL. См here.

так что ваше решение будет

/^[\pL- "\']*$/u 
+0

correst меня, если я ошибаюсь. пл означает польские специальные символы да? так что я должен добавить другие ярлыки языки также все ow другие языки специальные символы? – DarAss

+0

'L' означает все буквы :) нормально работает, как должно;) Теперь я понимаю;) спасибо. Проблема решена – DarAss

+0

вы можете выбрать языки по '\ p {Language}'. Список языков указан в приведенной выше ссылке. – Alex

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