if (preg_match('/(\w)\1{2,}/', utf8_decode($name)))
return t('3 Repeated charachter Are not allowed');
отлично работает, чтобы латинские символы не повторялись более 2 раз подряд
проблема в том, что код не работает с арабским кодированием >> плз помогите лисе .. и извините за мой плохой английский
Вам нужно только добавить модификатор 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 также заставляет механизм регулярных выражений обрабатывать строку шаблона как строку Юникода.
Других решений пока нет …