[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить запрет на повторение симола
GET
Здравствуйте, помогите составить регулярку для запрета пароля состоящего из одного и того же повторяющегося символа типа:

wwwwwwww
2222222222
**********
вот строка:

$gg
вычисляю длину
$nn=mb_strlen($gg,'UTF-8');
$nnn=$nn-1;// количество символов -1
if (preg_match("#(.)\\1{$nn}#sUi",$gg))
{
echo 'No';
}


не работает



Спустя 23 минуты, 24 секунды (29.01.2012 - 08:53) inpost написал(а):
Поставь "от начала и до конца", а количество поставь +

Спустя 1 час, 32 минуты, 39 секунд (29.01.2012 - 10:26) GET написал(а):
preg_match("#^(.+)$#sUi",$gg)


не работает

Спустя 44 минуты, 31 секунда (29.01.2012 - 11:10) GET написал(а):
preg_match("#^(.)${+}#sUi",$gg);

и так

Спустя 7 минут, 24 секунды (29.01.2012 - 11:18) Панч написал(а):
потому что он ищет абсолютно любой символ и твой шаблон, полностью подходит.
Тут нужно указать конкретный символ, например первый элемент строки.


$string = "22222222";

if(preg_match("#^" . $string{0} . "+$#", $string))
echo "No";

Спустя 4 минуты, 49 секунд (29.01.2012 - 11:23) GET написал(а):
Панч

Спасибо, точно...но нельзя ли регуляркой вычленить первый элемент чтоб без пхп обойтись?

Спустя 1 минута, 10 секунд (29.01.2012 - 11:24) GET написал(а):
Панч

Все все...я затупил smile.gif)))

Спустя 47 секунд (29.01.2012 - 11:25) GET написал(а):
Спасибо еще раз!

Спустя 5 минут, 24 секунды (29.01.2012 - 11:30) GET написал(а):
Что-то та не робит в скрипте smile.gif

Спустя 5 минут, 17 секунд (29.01.2012 - 11:35) GET написал(а):
Нет все работает! smile.gif в скрипте была ошибка

Спустя 3 минуты, 57 секунд (29.01.2012 - 11:39) Placido написал(а):
А зачем регулярки-то?
if(substr_count($gg, $gg{1}) === mb_strlen($gg))
echo 'NO';

Спустя 15 минут, 15 секунд (29.01.2012 - 11:55) GET написал(а):
Placido

Думаешь быстрее так?...если еще добавить 'UTF-8'

Спустя 7 минут, 15 секунд (29.01.2012 - 12:02) inpost написал(а):
A.B.C.
Давай говорить так, ты показал регулярку заведомо ПРАВИЛЬНУЮ, единственное необходимо было указать u для кодировки UTF, и установить "начало и конец", а так же КОЛИЧЕСТВО не из переменной подставить, а выставить просто +.
Вместо этого ты написал какую-то другую регулярку, не относящуюся к первой!

Спустя 12 минут, 1 секунда (29.01.2012 - 12:14) GET написал(а):
inpost

Да я стал экспериминтировать и залез в какие то дебри...проблема по началу действительно была всего лишь из-за UTF-8

Спустя 4 минуты, 55 секунд (29.01.2012 - 12:19) inpost написал(а):
Просто так, как я показал - не надо определять даже длину, достаточно выставить, что ОТ НАЧАЛА и до КОНЦА.

Спустя 3 минуты, 34 секунды (29.01.2012 - 12:22) GET написал(а):
inpost

Ok

Спустя 16 минут, 51 секунда (29.01.2012 - 12:39) GET написал(а):
Цитата
$string = "22222222";

if(preg_match("#^" . $string{0} . "+$#", $string))
    echo "No";


Если вдруг кому то интересно с UTF-8 это $string{0} не прокатывает нужно через mb_substr() вытаскивать

Спустя 45 секунд (29.01.2012 - 12:40) inpost написал(а):
Доставать тоже ничего не надо, достаточно поставить . - это и есть любой символ.

Спустя 14 минут, 44 секунды (29.01.2012 - 12:55) GET написал(а):
B еще спросиь хотел чем отличается U от u ...понимаю, что принадлежность к UTF ...но за за обработку еще и заглавных отвечает i

с "." нее получается, не могу понять почему

Спустя 1 минута, 53 секунды (29.01.2012 - 12:57) inpost написал(а):
U - отключает ЖАДНЫЙ поиск.
u - кодировка utf smile.gif

Спустя 3 минуты, 49 секунд (29.01.2012 - 13:00) GET написал(а):
Спасибо...теперь понятно

Спустя 15 минут, 48 секунд (29.01.2012 - 13:16) Placido написал(а):
Цитата (A.B.C. @ 29.01.2012 - 10:55)
Думаешь быстрее так?...

Быстрее. Регулярки медленнее. Хотя, там микросекунды, поэтому это дело вкуса.


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.