반응형
최소 8 자, 숫자 1 개, 대문자 1 개 및 소문자 1 개를 포함하는 비밀번호에 대한 javascript regex
이 질문에 이미 답변이 있습니다.
다음 기준을 충족해야하는 암호의 유효성을 검사하는 정규식을 작성하려고합니다.
- 8 자 이상 포함
- 1 개 이상의 숫자 포함
- 하나 이상의 소문자 (az) 포함
- 1 개 이상의 대문자 (AZ) 포함
- 0-9a-zA-Z 만 포함
다음을 시도했지만 작동하지 않는 것 같습니다.
http://jsfiddle.net/many_tentacles/Hzuc9/
<input type='button' value='click' class='buttonClick' />
<input type='text' />
<div></div>
과...
$(".buttonClick").click(function () {
if ($("input[type=text]").filter(function () {
return this.value.match(/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8})$/);
})) {
$("div").text("pass");
} else {
$("div").text("fail");
}
});
어떤 아이디어?
정규식은 다음과 같아야합니다.
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/
다음은 설명입니다.
/^
(?=.*\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
$/
개별 정규 표현식을 사용하여 다른 부분을 테스트하는 것은 하나의 정규 표현식을 모두 포함하는 것보다 훨씬 쉽습니다. 또한 유효성 검사 기준을 더 쉽게 추가하거나 제거 할 수 있습니다.
또한 귀하의 사용법 .filter()
이 잘못되었습니다. 항상 jQuery 객체 (JavaScript에서 진실로 간주 됨)를 반환합니다. 개인적으로 .each()
루프를 사용하여 모든 입력을 반복하고 개별 합격 / 불합격 상태를보고합니다. 아래와 같은 것 :
$(".buttonClick").click(function () {
$("input[type=text]").each(function () {
var validated = true;
if(this.value.length < 8)
validated = false;
if(!/\d/.test(this.value))
validated = false;
if(!/[a-z]/.test(this.value))
validated = false;
if(!/[A-Z]/.test(this.value))
validated = false;
if(/[^0-9a-zA-Z]/.test(this.value))
validated = false;
$('div').text(validated ? "pass" : "fail");
// use DOM traversal to select the correct div for this input above
});
});
최소 8 = {8,}
:
str.match(/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8,})$/)
정규식은 정확히 8 자만 허용합니다. {8,}
대신 8 개 이상을 지정하는 데 사용 합니다 {8}
.
But why would you limit the allowed character range for your passwords? 8-character alphanumeric passwords can be bruteforced by my phone within minutes.
반응형
'developer tip' 카테고리의 다른 글
형식 속성 값 'android : drawable'이 유효하지 않습니다. (0) | 2020.11.29 |
---|---|
jQuery / CSS를 사용하여 모든 요소 중 가장 높은 요소 찾기 (0) | 2020.11.29 |
Android 지원 작업 표시 줄로 AppCompat.Translucent 유형 테마를 얻는 방법은 무엇입니까? (0) | 2020.11.29 |
선택 항목의 인덱스를 사용하여 MySQL에서 임시 테이블 만들기 (0) | 2020.11.29 |
ASP.NET MVC WebAPI 404 오류 (0) | 2020.11.29 |