Как я могу справиться с проверкой ввода нелатинских скриптов в PHP? - PullRequest
2 голосов
/ 27 июня 2011

Я пытаюсь адаптировать php-приложение для обработки нелатинских скриптов (в частности, японского, упрощенного китайского и арабского). Процедуры проверки данных приложения часто используют регулярные выражения для проверки ввода, но я не уверен, как адаптировать тип символа \ w к другим языкам без установки дополнительных языковых стандартов в системе (на которые я не могу положиться).

Предыдущие разработчики, работавшие над приложением, просто добавляли необходимые символы в регулярные выражения по мере роста числа поддерживаемых нами языков (вы часто видите в коде «[\ wÀÁÂÃÄÅÆÇÈÉ ... и т. Д.»), Но я не могу действительно делайте это для всех алфавитов, которые мне нужно поддерживать.

У кого-нибудь есть какой-нибудь совет, как с этим справиться?

1 Ответ

2 голосов
/ 27 июня 2011

Смотрите этот комментарий на php.net: http://www.php.net/manual/en/regexp.reference.unicode.php#102756

например:

//$string may only contain arabic letters
preg_match('@^\p{Arabic}+$@u',$string);

//$string may only contain cyrillic letters
preg_match('@^\p{Cyrillic}+$@u',$string);

//$string may contain word-characters and greek
preg_match('@^[\p{Greek}\w]+$@u',$str);

... и т. Д.

демонстрация: http://cecb.freephptest.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...