Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Символы a-z (нижний регистр, латиница), цифры 0-9 и - (дефис)

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: heed   (31.08.2009 в 13:48)   письмо автору
 
   для: Desh   (30.08.2009 в 18:45)
 

>значение отличное от нуля
это не то
>strpos() может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0

проверяйте на значение FALSE
или такое утверждение (?!.*-{2}) говорит о том что во всей последующей строке не должно быть двух дефисов подряд

// или так (?!.*--)

  Ответить  
 
 автор: ride   (31.08.2009 в 13:33)   письмо автору
 
   для: Trianon   (31.08.2009 в 13:20)
 

тогда еще упрощу
(?=\d{4}|[^a-z0-9-]|(.)\1{3})

  Ответить  
 
 автор: Trianon   (31.08.2009 в 13:20)   письмо автору
 
   для: ride   (31.08.2009 в 13:11)
 

$pattern = ?

  Ответить  
 
 автор: ride   (31.08.2009 в 13:11)   письмо автору
 
   для: Trianon   (31.08.2009 в 13:05)
 

согласен, не учел это
([-a-z0-9])(?=\d{3}|\1{3}|[^a-z0-9-])

теперь все ок

upd почти))

  Ответить  
 
 автор: Trianon   (31.08.2009 в 13:05)   письмо автору
 
   для: ride   (31.08.2009 в 12:59)
 

попытка ввести любой символ за пределами набора приводит к диагностике "все ок!"

  Ответить  
 
 автор: ride   (31.08.2009 в 12:59)   письмо автору
 
   для: Trianon   (31.08.2009 в 12:00)
 

я склоняюсь к предложенному мной варианту(только добавлю дефис)
([-a-z0-9])(?=\d{3}|\1{3})
//использовать так
$pattern='/([-a-z0-9])(?=\d{3}|\1{3})/i';
    $subject='342str';
    if(preg_match($pattern,$subject)){
        echo'Логин указан неверно';
    }else echo'все ок!';

  Ответить  
 
 автор: Trianon   (31.08.2009 в 12:00)   письмо автору
 
   для: ride   (31.08.2009 в 11:11)
 

Какой у Вас получился шаблон в конечном итоге?

  Ответить  
 
 автор: Trianon   (31.08.2009 в 11:16)   письмо автору
 
   для: ride   (31.08.2009 в 11:11)
 

Возможно.

  Ответить  
 
 автор: ride   (31.08.2009 в 11:11)   письмо автору
 
   для: Trianon   (31.08.2009 в 10:58)
 

думаю .* вообще надо убрать.

  Ответить  
 
 автор: Trianon   (31.08.2009 в 10:58)   письмо автору
 
   для: ride   (31.08.2009 в 10:40)
 

на самом деле я перемудрил.
достаточно так (?!.*[\\d]{3})
или даже так (?!.*\\d{3})
читается как
(?!     . *    \\d {3}    )

впереди не должно встретиться, после любых символов в любом количестве , цифр подряд в количестве 3 штуки.

А жадность... жадность и вправду можно уменьшить, чтоб производительность не страдала.
(?!.*?\\d{3})

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования