@Hint

Как нормализовать unicode строку (алфавиты и спец. символы)?

Например, мне нужно определить, содержит ли строка в utf-8 слово "лопата". Вроде бы ничего сложного, если бы не:
1. Одинаковые буквы из разных алфавитов. В данном случае буквы "о" и "а" могут быть латинскими. Кириллица и латиница - это ведь еще не всё?
2. Специальные unicode символы. Пробел нулевой ширины \u200b, символы направления текста (bidi) и пр.

Как с этим справиться? Метод normalize из intl не поможет. Что-то можно заменить вручную (вырезать некоторые спец. символы), заменить алфавиты, но всего же не предусмотреть. Существует ли какое-нибудь готовое решение или комплекс из нескольких решений?
  • Вопрос задан
  • 373 просмотра
Пригласить эксперта
Ответы на вопрос 2
@shagguboy
несуществует за полной ненадобностью.
Ответ написан
Комментировать
27cm
@27cm
TODO: Написать статус
но всего же не предусмотреть

Ещё как предусмотреть. Достаточно удалить всё, кроме списка разрешенных символов. Всё решение в одно регулярное выражение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы