정규식으로 확인하고 싶습니다.
비밀번호에는 하나 이상의 숫자를 포함하여 8 자 이상이 포함되며 소문자 및 대문자와 특수 문자 (예 : #
, ?
)가 모두 포함 !
됩니다.
기존 비밀번호이거나 사용자 이름 "password"
, 또는"websitename"
그리고 여기에 대문자, 소문자, 숫자 또는 특수 문자를 포함하여 8 자에 대한 유효성 검사 표현식이 있습니다.
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
암호로 쓰려면 대문자, 특수 문자 및 영숫자를 포함하여 8 자 여야 합니까?
답변
최소 8 자, 하나 이상의 문자와 하나의 숫자 :
"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
최소 8 자, 하나 이상의 문자, 하나의 숫자 및 하나의 특수 문자 :
"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
최소 8 자, 하나 이상의 대문자, 하나의 소문자 및 하나의 숫자 :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
최소 8 자, 하나 이상의 대문자, 하나의 소문자, 하나의 숫자 및 하나의 특수 문자 :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
최소 8 자 및 최대 10 자, 하나 이상의 대문자, 하나의 소문자, 하나의 숫자 및 하나의 특수 문자 :
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
답변
이 정규식을 여러 lookahead 어설 션 (조건) 과 함께 사용할 수 있습니다 .
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
이 정규 표현식은 다음 규칙을 시행합니다.
- 적어도 하나의 대문자 영어 편지 ,
(?=.*?[A-Z])
- 영문 소문자 1 자 이상
(?=.*?[a-z])
- 적어도 하나의 숫자
(?=.*?[0-9])
- 하나 이상의 특수 문자
(?=.*?[#?!@$%^&*-])
- 최소 길이 8
.{8,}
(앵커 포함)
답변
정규 표현식에는 AND 연산자가 없으므로 유효성이 무언가 다른 것으로 정의되어있을 때 유효한 암호와 일치하는 정규 표현식을 작성하는 것은 매우 어렵습니다.
그러나 정규식에는 OR 연산자가 있으므로 DeMorgan 정리를 적용하고 유효하지 않은 비밀번호와 일치하는 정규식을 작성하십시오.
8 자 미만으로 무엇이든 또는 어떤 번호가 무엇이든 또는 어떤 대문자 무엇이든 또는 어떤 소문자 또는 아무것도 또는 특수 문자 아무것도.
그래서:
^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$
일치하는 것이 있으면 잘못된 암호입니다.
답변
@anubhava의 대답에 대한 작은 개선 사항 : 특수 문자는 키보드의 문자로 제한되므로 특수 문자에 이것을 사용하십시오.
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
이 정규 표현식은 다음 규칙을 시행합니다.
- 하나 이상의 대문자 영어
- 하나 이상의 소문자 영문
- 하나 이상의 숫자
- 하나 이상의 특수 문자
- 최소 길이 8
답변
제 상황에서 가장 인기있는 답변을 따르는 데 어려움이있었습니다. 예를 들어, 내 검증은 다음과 같은 문자로 실패했다 ;
나 [
. 나는 특수 문자를 화이트리스트에 [^\w\s]
올리는 데 관심이 없었기 때문에 대신 단어가 아닌 문자 (숫자를 포함)와 공백이 아닌 문자를 테스트로 사용하십시오. 요약하면 다음과 같습니다.
- 최소한
8
문자 1
숫자 이상- 적어도
1
소문자 - 적어도
1
대문자 - 적어도
1
특별한 성격
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/
JSFiddle Link- 다양한 사례를 다루는 간단한 데모
답변
같은 없음 영어 글자 수보다 “일반적인”버전 (?), 특수 문자 .
^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$
var pwdList = [
'@@V4-\3Z`zTzM{>k',
'12qw!"QW12',
'123qweASD!"#',
'1qA!"#$%&',
'Günther32',
'123456789',
'qweASD123',
'qweqQWEQWEqw',
'12qwAS!'
],
re = /^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$/;
pwdList.forEach(function (pw) {
document.write('<span style="color:'+ (re.test(pw) ? 'green':'red') + '">' + pw + '</span><br/>');
});
답변
JavaScript 파일을 가져옵니다 jquery.validate.min.js
.
이 방법을 사용할 수 있습니다 :
$.validator.addMethod("pwcheck", function (value) {
return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});
- 하나 이상의 대문자 영어
- 하나 이상의 소문자 영문
- 하나 이상의 숫자
- 하나 이상의 특수 문자