Проблемы с регулярным выражением
Нужно написать регулярку для проверки пароля.
Учитывать нужно следующее: 1) минимум один символ латинского алфавита маленького регистра; 2) минимум один символ латинского алфавита большого регистра; 3) минимум одна цифра. написал следующее: /^[a-z]+[A-Z]+[0-9]+$/ но пропускает только к примеру - "aS1" или "kGFDJNF23844". "d1F" - уже неправильно. Получается мне нужно как-то порядок игнорировать... Помогите плиз уже голову сломал. решение походу очень простое, а я зациклился....:blink: |
Artsemi, Приведите:
три правильных примера строки и два - неправильных |
Цитата:
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( "aS1" ) ); // true alert( re.test( "kGFDJNF23844" ) ); // true alert( re.test( "d1F" ) ); // true alert( re.test( "673jhh34je" ) ); // false |
Цитата:
fH7, uuuuojnoLKFNU2, ffFF55; Неправильные: Fh7, u8uJ, FFff55 |
Цитата:
|
devote,
спасибо за ответ ща попробую. А может проще в три переменные это все? Как правильнее? |
Цитата:
|
Artsemi,
в моем варианте не прокатит напримпер такой пароль: HGFjkt76^Jhg то есть символы не пройдут отличные от латинских и цифр |
Artsemi,
всеравно я вас не понимаю.. чем отличается этот пароль: ffFF55 от этого: FFff55 И почему второй является не правильным? |
Цитата:
|
Цитата:
сразу маленькие потом большие потом цифры... а мне нужно чтобы не зависило от этого порядка |
Цитата:
|
Цитата:
/[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-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]+)$/ |
хотя вариант не прокатит на таком например пароле:
HGf234k2 |
Цитата:
Ggrgr4FFFF3342r4rr4rFFFFffGGG - вот такое не определяет. |
Цитата:
|
тогда нужно так примерно делать
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" ) ); |
Цитата:
/[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]+/ |
Цитата:
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" ) ); |
Цитата:
Мне нужны только латинские разных регистров и цифры. |
Тады простенько, для новичка:
<input id="test" type="text"/> <input type="button" value="Test" onclick="Tst()"/> <script> function Tst() { var elem = document.getElementById( 'test' ); var str = elem.value; var str2=str.replace(/[a-z]/g,''); var str3=str2.replace(/[A-Z]/g,''); var str4=str3.replace(/[0-9]/g,''); if(str!=str2&&str2!=str3&&str4==''){alert('Норма');return;} alert('Неправильный ввод Пароля') } </script> |
Часовой пояс GMT +3, время: 07:15. |