Как использовать pregmatch для предотвращения повторяющихся символов (арабское кодирование)?

if (preg_match('/(\w)\1{2,}/', utf8_decode($name)))
return t('3 Repeated charachter Are not allowed');

отлично работает, чтобы латинские символы не повторялись более 2 раз подряд

проблема в том, что код не работает с арабским кодированием >> плз помогите лисе .. и извините за мой плохой английский

0

Решение

Вам нужно только добавить модификатор u в конце шаблона:

if (preg_match('/(\w)\1{2,}/u', $name))
return t('3 Repeated charachter Are not allowed')

Модификатор u меняет значение \w класс персонажей. По умолчанию \w класс персонажа означает [a-zA-Z0-9_] но с модификатором U, он становится [\p{L}\p{N}_],

Другими словами, он содержит все буквы Unicode, цифры и подчеркивание.

Модификатор u также заставляет механизм регулярных выражений обрабатывать строку шаблона как строку Юникода.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector