Может ли кто-нибудь помочь мне в создании регулярного выражения для проверки пароля.
Условие: "Пароль должен содержать 8 символов и хотя бы одно число, одну букву и один уникальный символ, например !#$%&? "
Может ли кто-нибудь помочь мне в создании регулярного выражения для проверки пароля.
Условие: "Пароль должен содержать 8 символов и хотя бы одно число, одну букву и один уникальный символ, например !#$%&? "
^.*(?=.{8,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$
---
^.* : Start
(?=.{8,}) : Length
(?=.*[a-zA-Z]) : Letters
(?=.*\d) : Digits
(?=.*[!#$%&? "]) : Special characters
.*$ : End
Попробуйте это
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{6,20})
Описание выше Регулярное выражение:
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[\W]) # must contains at least one special character
. # match anything with previous condition checking
{8,20} # length at least 8 characters and maximum of 20
) # End of group
"/W" увеличит диапазон символов, которые могут использоваться для пароля, и яма может быть более безопасной.
Вы можете легко достичь каждого из индивидуальных требований (например, минимум 8 символов: .{8,}
будет соответствовать 8 или более символам).
Чтобы объединить их, вы можете использовать "позитивный взгляд" для применения нескольких подвыражений к одному и тому же контенту. Что-то вроде (?=.*\d.*).{8,}
для соответствия одной (или более) цифрам с lookahead и 8 или более символами.
Итак:
(?=.*\d.*)(?=.*[a-zA-Z].*)(?=.*[!#\$%&\?].*).{8,}
Вспомним, как избежать метасимволов.
Пароль со следующими условиями:
Без пробела
'use strict';
(function() {
var foo = '3g^g$';
console.log(/^(?=.*\d)(?=(.*\W){2})(?=.*[a-zA-Z])(?!.*\s).{1,15}$/.test(foo));
/**
* (?=.*\d) should contain at least 1 digit
* (?=(.*\W){2}) should contain at least 2 special characters
* (?=.*[a-zA-Z]) should contain at least 1 alphabetic character
* (?!.*\s) should not contain any blank space
*/
})();
Вы можете создать собственное регулярное выражение для валидации javascript
;
(/^
(?=.*\d) //should contain at least one digit
(?=.*[a-z]) //should contain at least one lower case
(?=.*[A-Z]) //should contain at least one upper case
[a-zA-Z0-9]{8,} //should contain at least 8 from the mentioned characters
$/)
Пример: - /^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{7,}$/