암호에 대한 정규식은 8 자 이상, 하나 이상의 숫자 및 소문자와 특수 문자를 모두 포함해야합니다.


446

정규식으로 확인하고 싶습니다.

비밀번호에는 하나 이상의 숫자를 포함하여 8 자 이상이 포함되며 소문자 및 대문자와 특수 문자 (예 : #, ?)가 모두 포함 !됩니다.

기존 비밀번호이거나 사용자 이름 "password", 또는"websitename"

그리고 여기에 대문자, 소문자, 숫자 또는 특수 문자를 포함하여 8 자에 대한 유효성 검사 표현식이 있습니다.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

암호로 쓰려면 대문자, 특수 문자 및 영숫자를 포함하여 8 자 여야 합니까?

답변:


1183

최소 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}$"

46
"^ (? =. * [A-Za-z]) (? =. * \ d) [A-Za-z \ d] {8,} $"는 8 개의 문자 중 하나 인 기호를 허용하지 않습니다
Wee

필수 사항이 아닌 모든 문자 (특수 및 문장 부호)에 대해 다음과 같은 허용 문자를 찾았습니다. "^ (? =. * [az]) (? =. * [AZ]) (? =. * \ d) [a- zA-Z \ d \ w \ W] {8,} $ "
개빈

413

이 정규식을 여러 lookahead 어설 션 (조건) 과 함께 사용할 수 있습니다 .

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

이 정규 표현식은 다음 규칙을 시행합니다.

  • 적어도 하나의 대문자 영어 편지 ,(?=.*?[A-Z])
  • 영문 소문자 1 자 이상 (?=.*?[a-z])
  • 적어도 하나의 숫자 (?=.*?[0-9])
  • 하나 이상의 특수 문자 (?=.*?[#?!@$%^&*-])
  • 최소 길이 8 .{8,}(앵커 포함)

71

정규 표현식에는 AND 연산자가 없으므로 유효성이 무언가 다른 것으로 정의되어있을 때 유효한 암호와 일치하는 정규 표현식을 작성하는 것은 매우 어렵습니다.

그러나 정규식에는 OR 연산자가 있으므로 DeMorgan 정리를 적용하고 유효하지 않은 비밀번호와 일치하는 정규식을 작성하십시오.

8 자 미만으로 무엇이든 또는 어떤 번호가 무엇이든 또는 어떤 대문자 무엇이든 또는 어떤 소문자 또는 아무것도 또는 특수 문자 아무것도.

그래서:

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$

일치하는 것이 있으면 잘못된 암호입니다.


3
좋아, 난 당신이 우리가 때때로 사람 사이에 차이가있어 실현하지 않는 얻을하는 컴퓨터 과학자 중 하나였다 두려워 정규 표현식정규 표현식에가 . ;) 나중에 일치 결과를 부정 할 수 있다면 많은 정규식 작업이 훨씬 간단하다는 것이 사실이지만 항상 가능한 것은 아닙니다. 그래도 멋진 정규식입니다. 간단하지 않고 우아합니다!
Alan Moore

1
왜 내가 전에 생각하지 않았습니까? 큰 답변 (결과를 부정 할 수있는 경우)
TeChn4K

2
이것은 암호가 정규 표현식과 함께 공백을 포함하지 않아야하는지 확인하는 방법을 공백으로 허용합니까? 나는 이것을 시도했다 /^(\s|.{0,7}|[^0-9]*|[^AZ]*|[^az]*|[^$#@%]*|\s)$/ .test ( 'aAa # a1a aa'); 하지만 작동하지 않습니다
Gaurav

1
@Gaurav, 추가 [[^ \ s] * \ s. *
Matt Timmermans

1
그것을 사랑하십시오. 그래도 작동하려면 마지막 절을 제거해야 |[a-zA-Z0-9]*했습니다.
i--

35

@anubhava의 대답에 대한 작은 개선 사항 : 특수 문자는 키보드의 문자로 제한되므로 특수 문자에 이것을 사용하십시오.

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

이 정규 표현식은 다음 규칙을 시행합니다.

  • 하나 이상의 대문자 영어
  • 하나 이상의 소문자 영문
  • 하나 이상의 숫자
  • 하나 이상의 특수 문자
  • 최소 길이 8

1
JavaScript 버전에서는 \WASCII 문자 만 일치합니다. 따라서 변경하지 않았으므로 이제 공백 문자를 필터링해야합니다. 또한 {1,}추가 한 모든 괄호와 수량자는 순수한 노이즈이므로 욕심 ?없는 연산자를 제거하는 것은 의미가 없습니다. 여기에는 개선이 없습니다.
Alan Moore

빈 문자열을 피하는 방법. 빈 문자열 정규식은 true를 반환해야합니다. 다음 정규식을 사용했습니다 (? =. * [0-9]) (? =. * [az]) (? =. * [AZ]) (? =. * [@ # $ % ^ & + =]) (? = \\ S + $). {8,15}
코더

2
_ 특수 캐릭터 실패
Akhilesh

22

제 상황에서 가장 인기있는 답변을 따르는 데 어려움이있었습니다. 예를 들어, 내 검증은 다음과 같은 문자로 실패했다 ;[. 나는 특수 문자를 화이트리스트에 [^\w\s]올리는 데 관심이 없었기 때문에 대신 단어가 아닌 문자 (숫자를 포함)와 공백이 아닌 문자를 테스트로 사용하십시오. 요약하면 다음과 같습니다.

  • 최소한 8문자
  • 1숫자 이상
  • 적어도 1소문자
  • 적어도 1대문자
  • 적어도 1특별한 성격

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

JSFiddle Link- 다양한 사례를 다루는 간단한 데모


2
좋은데 그러나 정규 표현식이 _ (밑줄)을 특수 문자로 허용하지 않는 문제를 발견했습니다. (.
user3217843

좋았지 만 약간의 실수. 공간을 사용할 경우 유효한 암호가 아닌 공간도 허용합니다.
Dinesh.net

밑줄을 사용할 수 없다는 점을 제외 하고는이 답변을 정말 좋아합니다. 내가 한 것은 밑줄에 대한 지원을 추가하는 것으로 대체 (?=.*?[^\w\s])되었으며 (?=.*?([^\w\s]|[_]))지금은 훌륭하게 작동합니다. 또한 @ Dinish.net 내가 사용하는 시스템은 암호 문자열을 얻을 때 공백을 제거하므로 vanilla JS String.prototype.trim () 메서드를 사용하면이 답변을 사용하려는 경우 잘 작동합니다.
Devin Carpenter 1

15

같은 없음 영어 글자 수보다 "일반적인"버전 (?), 특수 문자 .

^(?=\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/>');
  });


13

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)
});
  1. 하나 이상의 대문자 영어
  2. 하나 이상의 소문자 영문
  3. 하나 이상의 숫자
  4. 하나 이상의 특수 문자

10

이거 한번 해봐:

  1. 최소 6 자
  2. 적어도 하나의 대문자
  3. 하나 이상의 소문자
  4. 하나 이상의 특수 문자

표현:

"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"

선택적 특수 문자 :

  1. 하나 이상의 특수 문자
  2. 하나 이상의 숫자
  3. 특수 문자는 선택 사항입니다
  4. 최소 6 자 및 최대 16 자

표현:

"/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"

최소 및 최대 조건이 필요하지 않은 경우 제거 .{6, 16}

  • 6 은 글자 수 한도입니다
  • 최대 글자 수 제한은 20 입니다
  • ? = 는 일치 표현식을 의미합니다

2
@Madhu 나는 선택적 특수 문자에 대한 귀하의 조건에 대한 답변을 업데이트했습니다
ojus kulkarni

7

질문에 직접 대답하지는 않지만 실제로 정규식이어야합니까?

나는 Perl을 많이 사용했고 정규 표현식 문제를 해결하는 데 익숙했습니다. 그러나 모든 미리보기 및 기타 단점으로 인해 더 복잡해지면 작은 버그를 모두 죽이기 위해 수십 개의 단위 테스트를 작성해야합니다.

또한 정규 표현식은 일반적으로 명령 또는 기능 솔루션보다 몇 배 느립니다.

예를 들어, 다음 (FP가 아닌) 스칼라 함수는 가장 인기있는 답변의 정규식보다 약 3 배 빠른 원래 질문을 해결합니다. 또한 단위 테스트가 전혀 필요하지 않습니다.

def validatePassword(password: String): Boolean = {
  if (password.length < 8)
    return false

  var lower = false
  var upper = false
  var numbers = false
  var special = false

  password.foreach { c =>
    if (c.isDigit)       numbers = true
    else if (c.isLower)  lower = true
    else if (c.isUpper)  upper = true
    else                 special = true
  }

  lower && upper && numbers && special
}

7

Peter Mortensen에게 답장을했지만 평판이 충분하지 않습니다.

그의 표현은 지정된 각 최소 요구 사항에 완벽합니다. 특수 문자가 필요없는 그의 표현의 문제점은 특수 문자도 허용하지 않기 때문에 최대 요구 사항을 적용한다는 점입니다. OP가 요청한 것으로 생각하지 않습니다. 일반적으로 사용자는 원하는만큼 비밀번호를 강력하게 만들 수 있습니다. 왜 강력한 암호를 제한해야합니까?

따라서 그의 "최소 8 자, 적어도 하나의 문자와 하나의 숫자"표현 :

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$

최소 요구 사항을 달성하지만 나머지 문자는 문자와 숫자 가능합니다. 특수 문자를 허용하려면 (그러나 필수는 아님) 다음과 같은 것을 사용해야합니다.

^(?=.*[A-Za-z])(?=.*\d).{8,}$ 모든 문자를 허용

또는

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d$@$!%*#?&]{8,}$ 특정 특수 문자를 허용

마찬가지로 "최소 8 자, 하나 이상의 대문자, 하나의 소문자 및 하나의 숫자 :"

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$

최소 요구 사항을 충족하지만 문자와 숫자 허용합니다. 사용하다:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$ 모든 문자를 허용

또는

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d$@$!%*?&]{8,} 특정 특수 문자를 허용합니다.


설명 주셔서 감사합니다.
Hải Nguyễn

정답으로 표시해야합니다. 최고 답변이 잘못되었습니다.
Jake

6
Use the following Regex to satisfy the below conditions:

Conditions: 1] Min 1 uppercase letter.
            2] Min 1 lowercase letter.
            3] Min 1 special character.
            4] Min 1 number.
            5] Min 8 characters.
            6] Max 30 characters.

Regex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/    

2
몇 년 전에 작성된 다른 답변보다 어떤 방법으로 답이 더 낫습니까?
JSantos

@ JoshYates1980 정규 표현식이 실패한 "특수 문자"를 언급 할 수 있습니다. 이를 확인하고 적절하게 업데이트하겠습니다. 그러나 내가 아는 한 1 특수 문자의 명령 조건에 따라 모두 작동합니다. 응답을 기다리는 중 ....
SHASHANK HONRAO

1
@SHASHANKHONRAO 식을 다음과 같이 업데이트했습니다 : ^ (? =. * [az]) (? =. * [AZ]) (? =. * \ d) (? =. * [$ @ $! % *? & + ~ |{}:;<>/])[A-Za-z\d$@$!%*?&+~(!? @ $ % * + ~`| {} : <> /); | {} <> /] {8,15} 다음과 같은 영숫자가 아닌 문자가 포함됩니다
JoshYates1980

6

다음 정규식 솔루션을 고려하면 어떨까요?

^(?=.*[\w])(?=.*[\W])[\w\W]{8,}$

다음을 검증합니다.

  1. 하나 이상의 소문자
  2. 하나 이상의 대문자
  3. 하나 이상의 숫자
  4. 하나 이상의 특수 문자
  5. 최소한 8 자 이상이어야합니다.

다음 링크에서 작동하는지 확인하십시오 .https : //regex101.com/r/qPmC06/4/


제안 된 정규 표현식과 regex101 링크 아래의 정규 표현식이 다릅니다. 그렇지 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W\_])[A-Za-z\d\W\_]{8,}$않습니까?
CraZ

1
@CraZ 귀하의 제안에 감사드립니다.
Emerson Joel Rojas Soliz

3

필요에 따라이 패턴은 제대로 작동합니다. 이 시도,

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

문자열 변수를 만들고 패턴을 할당 한 다음 패턴이 올바른 경우 true를 반환하고 그렇지 않으면 false를 반환하는 부울 메서드를 만듭니다.

견본:

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
String password_string = "Type the password here"

private boolean isValidPassword(String password_string) {
    return password_string.matches(Constants.passwordPattern);
}

3

나는 여기에서 많은 문제를 발견했고, 나는 내 자신을 만들었다.

테스트를 통해 영광입니다.

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([^a-zA-Z\d\s])).{9,}$

https://regex101.com/r/DCRR65/4/tests

주의 사항 :

  1. 내가 테스트하고있는를 \w포함 하기 때문에 사용하지 않습니다 _.
  2. 줄의 끝과 일치하지 않고 기호를 일치시키는 데 많은 문제가있었습니다.
  3. 구체적으로 기호를 지정하지 않으면 키보드마다 사용하는 로케일마다 기호가 다를 수 있기 때문입니다.

이 정규 표현식은 공백이 암호 안에 있어도 작동하지 않습니다.
Arthur Melo


2

@ClasG는 이미 다음을 제안했습니다 .

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

그러나 _ (밑줄)을 특수 문자 (예 : Aa12345_)로 허용하지 않습니다.

개선 된 것은 다음과 같습니다.

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$

2

데모:

function password_check() {
  pass = document.getElementById("password").value;
  console.log(pass);
  regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
  if (regex.exec(pass) == null) {
    alert('invalid password!')
  }
  else {
    console.log("valid");
  }
}
<input type="text" id="password" value="Sample@1">
<input type="button" id="submit" onclick="password_check()" value="submit">


2

2020 년에 이것을 테스트 :

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

자신을 확인

const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
const str = `some12*Nuts`;
let m;

if ((m = regex.exec(str)) !== null) {
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}


이것이 대답보다 잘 낫습니까?
토토

@Toto이 스레드에는 허용되는 대답이 없습니다. 또한이 내용을 찾아서 regex101에서 유효성에 대해 읽었으므로 코드 조각과 공유하여 유효성도 확인했습니다.
Mihir Kumar

1

다음 정규식을 사용하여 아래 조건을 충족하십시오.

Conditions: 1] Min 1 special character.
            2] Min 1 number.
            3] Min 8 characters or More

정규식 : ^(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,}$

온라인 테스트 가능 : https://regex101.com


1

HTML5를 사용하면됩니다.

아래 코드를 패턴 속성에 사용하십시오.

pattern="(?=^.{8,}$)((?=.*\d)(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

완벽하게 작동합니다.


1

아래 정규식 패턴을 사용하여 비밀번호가 예상과 일치하는지 여부를 확인할 수 있습니다.

((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*()]).{8,20})


1

이것을 사용하십시오.

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%?=*&]).{8,20})

적어도 하나의 소문자, 하나의 대문자, 하나의 숫자 및 (!, @, #, $, %,?, =, *, &)의 특수 문자에 대해 유효성을 검사합니다.

최소 길이는 8이고 최대 길이는 20


이것이 답변과 어떻게 다릅니 까?
Toto

0

Java / Android에서 하나 이상의 숫자, 하나의 문자, 하나의 특수 문자를 사용하여 다음 패턴으로 비밀번호를 테스트합니다.

"^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,}$"

0

이 시도:

^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$

이 정규 표현식은 완벽하게 작동합니다.

function myFunction() {
    var str = "c1TTTTaTTT@";
    var patt = new RegExp("^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$");
    var res = patt.test(str);
    console.log("Is regular matches:", res);
}

0

적어도 1 개의 대문자, 1 자리 및 모든 특수 문자와 8-63 사이의 길이와 일치하는 패턴.

"^ (? =. [az]) (? =. [AZ]) (? =. * \ d) [a-zA-Z \ d \ W] {8,63} $"

이 패턴은 JAVA 프로그래밍에 사용되었습니다.


0

아래의 작동을 바랍니다. Azure 사용자 지정 정책에서 시도했습니다.

^ (? =. [az]) (? =. [AZ]) (? =. \ d) (? =. [@ # $ % ^ & * -_ + = [] {} | \ : ',? / ~&quot;();!])([A-Za-z\d@#$%^&amp;*\-_+=[\]{}|\\:',?/~ "() ;!] |. (?! @)) {6,16} $


0

필자는 실제로 첫 번째 답변을 여기에 복사하여 하나의 상위, 하나의 하위 및 최소 8 문자가 필요하지만 "사이에있는"모든 항목을 허용 하는보다 편리한 편의 정규 표현식 으로 바꿨습니다 .

이것은 예제 정규식입니다.

  1. 8 자 이상
  2. 하나 이상의 소문자
  3. 적어도 하나의 대문자

중요 :이 정규식 은 숫자, $, # 등의 특수 문자를 제외한 다른 모든 문자를 제외하고 등 -규칙 1에서 3까지만 입력 문자열과 일치

^(?=.*[a-z])(?=.*[A-Z]).{8,}$

"."마음 정규 표현식이 끝날 때마다 엉뚱한. 이것은 거의 모든 (그리고 읽을 수있는) 문자와 일치합니다


0

정규식을 사용하여 최소 8 개의 문자, 하나 이상의 대문자, 하나 이상의 소문자, 하나 이상의 숫자 (0-9) 및 하나 이상의 특수 문자 (! @ # $ % ^)를 확인하려면 다음을 수행하십시오. & * _? 또한 암호에 누락 된 내용에 대해 사용자에게 약간의 정보를 제공하면 다음 코드를 사용할 수 있습니다.

let password = "@Aa3a4d$";

//  Check every single condition separately
let lowercase = password.match((/[a-z]+/g));
let uppercase = password.match((/[A-Z]+/g));
let digits = password.match((/[\d]+/g));
let special = password.match((/[!@#$%^&*_]+/g));
let lenght = password.match((/[A-Za-z\d!@#$%^&*_]{8,}/g));

//  Array to store information about any mismatches in the string
let errors = [];

if (password === '' ) {
    errors.push('Password is required');
}
if (lowercase === null) {
    errors.push('Password must include at least one lowercase letter');
}
if (uppercase === null) {
    errors.push('Password must include at least one uppercase letter');
}
if (digits === null) {
    errors.push('Password must include at least one digit from 0 to 9');
}
if (special  === null) {
    errors.push('Password must include at least one special character');
}
if (lenght === null) {
    errors.push('Password must include at least 8 characters');
}
if (errors.length > 0) {
    console.log(errors);
    return;
} else {
    // Process your password
}

-1

이전 답변 중 하나에서 찾은 솔루션은 다음과 같습니다.

* 최소 8 자 이상의 대문자 알파벳 1 개, 소문자 알파벳 1 개, 숫자 1 개 및 특수 문자 1 개 :

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"*

... 나에게 도움이되지는 않았지만 다음은 단순화 된 버전이며 훌륭하게 작동합니다 (원하는 특수 문자를 추가하고 여기에 #을 추가했습니다). 문자와 마찬가지로 숫자 규칙을 추가하십시오.

"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&]){8,}"

1
이것은 긍정적 인 전망을 정량화하고 있습니다.
ctwheels
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.