2015-09-17 2 views
1

Я пытаюсь выполнить некоторую проверку на стороне сервера в PHP. Я старался, но решения не нашел. Я пытаюсь разрешить ввод только польских символов.Совпадение польских символов в PHP с preg_match

Для этого я использовал:

preg_match('/^[\x{0104}-\x{017c}]*$/u',$titles) 

Это не работает, однако.

У любого есть идеи, как правильно его написать?

+0

Пожалуйста, вы можете привести пример строки вы проверяете против? –

+0

Любое почтовое письмо вроде Ąąćś и т. Д. – user2779917

ответ

1

Чтобы соответствовать польские буквы только, нужно просто класс персонажа:

[a-pr-uwy-zA-PR-UWY-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ] 

Использование в качестве

preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu',$titles) 

Обратите внимание, что нет Q, V и X в Polish, но так как они могут в некоторых словах (taxi), вы также можете разрешить эти буквы. Затем используйте '/^[A-ZĄĆĘŁŃÓŚŹŻ]*$/iu' regex.

IDEONE demo

if (preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu', "spółka")) { 
    echo "The whole string contains only Polish letters"; 
} 
+0

Я попробовал preg_match ('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ] * $/iu', $ titles) Он возвращает false, когда я пытаюсь использовать его с буквой Ą. Вы пытались, если то, что вы написали, работает на самом деле? – user2779917

+0

Посмотрите на демо, он работает. –

+1

Без обид. Я сделал htmlentities по $ titles. Это была проблема. Работает сейчас. Спасибо. – user2779917

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