Как я могу обнаружить незападные символы?

Я хочу запретить определенный ввод UTF-8 (на стороне сервера), например, восточные языки, где пример ввода может быть "伊».

Однако, Я хочу продолжать поддерживать другие латинские или «латиноподобные» символы, такие как welsh ŵ и ŷ, поэтому проверка на латиницу-1 невозможна .

Какие варианты у меня есть? (если язык специфичен, предпочтителен PHP)

Большое спасибо.


Причина: поддержка браузера для большого количества незападных символов часто отсутствует (например, в другом браузере я просто вижу поле в вопросе выше), поэтому для таких вещей, как отображаемые имена, иногда целесообразно ограничить его, даже если это не подходит для тел сообщений

15
задан HoboBen 25 July 2014 в 15:08
поделиться

1 ответ

Просто сделайте

preg_match('/[^\\p{Common}\\p{Latin}]/u', $string)

, где $ string - это строка UTF-8. Это вернет «1», если есть нелатинские символы, и вернет «0» в противном случае.

Пример:

var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷaás??'));  //int(0)
var_dump(preg_match('/[^\\p{Common}\\p{Latin}]/u', 'sf..ŷݤaás??')); //int(1)
34
ответ дан 1 December 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: