Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с регулярным выражением (https://javascript.ru/forum/misc/30530-problemy-s-regulyarnym-vyrazheniem.html)

Artsemi 07.08.2012 17:19

Цитата:

Сообщение от devote (Сообщение 195369)
Artsemi,
всеравно я вас не понимаю.. чем отличается этот пароль:
ffFF55
от этого:
FFff55

И почему второй является не правильным?

регистр... /^([a-z]+)([A-Z]+)([0-9]+)$/
сразу маленькие потом большие потом цифры... а мне нужно чтобы не зависило от этого порядка

devote 07.08.2012 17:21

Цитата:

Сообщение от Artsemi
сразу маленькие потом большие потом цифры... а мне нужно чтобы не зависило от этого порядка

ну раз нужно что бы не зависело, значит все же второй вариант тоже является правильным? разве нет?

Artsemi 07.08.2012 17:22

Цитата:

Сообщение от devote (Сообщение 195375)
ну раз нужно что бы не зависело, значит все же второй вариант тоже является правильным? разве нет?

Если вы про этот
/[a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+/

тогда да. )) я же и говорю спасибо. Большое спасибо.

devote 07.08.2012 17:26

Цитата:

Сообщение от Artsemi
Если вы про этот

оберните это в скобки еще, что бы он от начала и до конца просматривал:
/^([a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+)$/

devote 07.08.2012 17:30

хотя вариант не прокатит на таком например пароле:
HGf234k2

Artsemi 07.08.2012 17:30

Цитата:

Сообщение от devote (Сообщение 195377)
оберните это в скобки еще, что бы он от начала и до конца просматривал:
/^([a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+)$/

Так не работает

Ggrgr4FFFF3342r4rr4rFFFFffGGG - вот такое не определяет.

Artsemi 07.08.2012 17:31

Цитата:

Сообщение от devote (Сообщение 195378)
хотя вариант не прокатит на таком например пароле:
HGf234k2

Да. Меня в принципе этот вариант устраивает. :)

devote 07.08.2012 17:32

тогда нужно так примерно делать
var re = /^[a-zA-Z\d]*([a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+)[a-zA-Z\d]*$/;

alert( re.test( "HGf234k2" ) );

alert( re.test( "Ggrgr4FFFF3342r4rr4rFFFFffGGG" ) );

Artsemi 07.08.2012 17:34

Цитата:

Сообщение от devote (Сообщение 195381)
тогда нужно так примерно делать
var re = /^[a-zA-Z\d]*([a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+)[a-zA-Z\d]*$/;

alert( re.test( "HGf234k2" ) );

Хм... А можешь пояснить чем этот вариант лучше этого?? -
/[a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+/

devote 07.08.2012 17:36

Цитата:

Сообщение от Artsemi
Хм... А можешь пояснить чем этот вариант лучше этого?? -

в том что первый вариант скушает и такой пароль:
hgfHGрпацу67№;":%;№?6546754%*?:%ырJHGF6 58ahg
var re = /[a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+/;
 
alert( re.test( "hgfHGрпацу67№;\":%;№?6546754%*?:%ырJHGF658ahg" ) ); // true

а второй нет:
var re = /^[a-zA-Z\d]*([a-z]+[A-Z]+\d+|[A-Z]+[a-z]+\d+|[a-z]+\d+[A-Z]+|[A-Z]+\d+[a-z]+|\d+[a-z]+[A-Z]+|\d+[A-Z]+[a-z]+)[a-zA-Z\d]*$/;
 
alert( re.test( "hgfHGрпацу67№;\":%;№?6546754%*?:%ырJHGF658ahg" ) );


Часовой пояс GMT +3, время: 05:26.