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

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

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Регулярное выражение для определения длины строки
 
 автор: zest   (29.10.2007 в 15:10)   письмо автору
 
 

Здравствуйте! Помогите новичку!

Нужно проверить вводимую строку на соответствие определенным условиям:
1 Строка должна содержать хотя бы одну строчную букву (лат. алфавит)
2 Строка должна содержать хотя бы одну заглавную букву (лат. алфавит)
3 Строка должна содержать хотя бы одну цифру (лат. алфавит)
4 Строка должна быть не менее 6 символов

Первые три условия реализованы. Не могу добавить к уже имеющемуся шаблону проверку на длину строки.

Мой шаблон: '/(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])/'

Пытаюсь записать шаблон так: /^((?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])){6,}$/
результат выдается не тот, что хотелось бы

Подскажите, пожалуйста, как должен выглядеть мой шаблон.

   
 
 автор: Balamut182   (29.10.2007 в 15:34)   письмо автору
 
   для: zest   (29.10.2007 в 15:10)
 

попробуйте так:

"/^[(a-z)?(A-Z)?(0-9)?]{6,}$/"

   
 
 автор: zest   (29.10.2007 в 15:46)   письмо автору
 
   для: Balamut182   (29.10.2007 в 15:34)
 

Нет, этот шаблон не подходит.
Он допускает присутствие в строке только одних цифр или букв, а мне обязательно нужно, чтобы присутствовали все 3 вида символов - и строчные и заглавные и цифры.

   
 
 автор: Balamut182   (29.10.2007 в 15:55)   письмо автору
 
   для: zest   (29.10.2007 в 15:46)
 

поменяйте ? на +

   
 
 автор: zest   (29.10.2007 в 16:35)   письмо автору
 
   для: Balamut182   (29.10.2007 в 15:55)
 

увы, шаблон


/^[(a-z)+(A-Z)+(0-9)+]{6,}$/



приводит к тем же результатам, что и предыдущий.
строки "123456" или "asdfgh" ему также соответствуют.

   
 
 автор: kasmanaft   (29.10.2007 в 17:02)   письмо автору
 
   для: zest   (29.10.2007 в 15:10)
 

Попробуйте так
/^(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])(?=.{6,})$/

   
 
 автор: zest   (29.10.2007 в 17:10)   письмо автору
 
   для: kasmanaft   (29.10.2007 в 17:02)
 

:)
Вот так

/^((?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9]).{6,})$/


работает.

Все. Всем спасибо огромное за помощь!

   
Rambler's Top100
вверх

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