programing

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

copysource 2022. 12. 10. 14:24
반응형

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

다음 사항을 확인하기 위한 정규 표현을 원합니다.

의 문자가 되어 있습니다., 8글자, , 8글자 입니다.#,?,!.

될 수도 없고, 이름인 사용자 이름인 ""를 할 수도 ."password" , 「」"websitename"

대문자, 소문자, 숫자 또는 특수문자를 포함한 8글자에 대한 검증식입니다.

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

패스워드는 대문자, 특수문자영숫자를 포함한8글자여야 합니다.

최소 8자, 최소 1자, 최소 1자,

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

최소 8자, 문자, 숫자 및 특수 문자 하나 이상:

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

최소 8자, 대문자 1자, 소문자 1자 및 숫자 1자:

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

최소 8자, 대문자 1자, 소문자 1자, 숫자 1자 및 특수 문자 1자:

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

8자 이상 10자 이하, 대문자 1자 이상, 소문자 1자 이상, 숫자 1자 및 특수 문자 1자 이하:

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

이 regex는 여러 사전 어설션(조건)과 함께 사용할 수 있습니다.

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

이 regex는 다음 규칙을 적용합니다.

  • 적어도 하나의 대문자 영어,(?=.*?[A-Z])
  • 1개의 "" " " " " " " " " " " " "(?=.*?[a-z])
  • 숫자, "" " " " " " " "(?=.*?[0-9])
  • 는, 「」입니다.(?=.*?[#?!@$%^&*-])
  • 8 ( 개 88 ).{8,}) (앵커 포함)

정규 표현식에는 AND 연산자가 없기 때문에 유효한 비밀번호와 일치하는 정규식을 작성하는 것은 매우 어렵습니다.유효성이 AND에 의해 정의되어 있거나 다른 것에 의해 정의되어 있는 경우에는...

단, 정규 표현식에는 OR 연산자가 있으므로 DeMorgan의 정리를 적용하여 비활성 비밀번호와 일치하는 정규식을 작성합니다.

8자 미만, 숫자 없음, 대문자 OR 없음 또는 소문자 OR 없음 또는 특수 문자 없음.

그래서:

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

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

@anubhava의 답변에 대한 약간의 개선점: 특수문자는 키보드 안에 있는 문자로 제한되어 있으므로 특수문자에 대해 사용합니다.

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

이 regex는 다음 규칙을 적용합니다.

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

다음의 조건을 만족시키려면 , 다음의 정규식을 사용합니다.

상태:

  1. 최소 1글자 대문자입니다.
  2. 최소 1 소문자
  3. 최소 1개의 특수 캐릭터.
  4. 최소 1개 번호
  5. 최소 8자
  6. 최대 30자.

정규식:

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

나는 내 상황에서 가장 인기 있는 답을 따라가는데 어려움을 겪었다.를 들어, 제 했을 때, 를 들어, '알다'와 같은 가 사용되었습니다.; ★★★★★★★★★★★★★★★★★」[ 화이트리스트를 [^\w\s]테스트 - 간단히 말해서 단어 이외의 문자(숫자 포함)와 공백 이외의 문자를 일치시킵니다.요약하자면, 여기 제게 효과가 있었던 것이 있습니다.

  • 적적 at8 표시
  • 적적 at1
  • 적적 at1 '''
  • 적적 at1 '''
  • 적적 at1 문자

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

피터 모텐슨에게 대답하고 싶지만, 저는 평판이 좋지 않습니다.

그의 표현은 지정된 최소 요구사항 각각에 대해 완벽합니다.특수문자가 필요없는 그의 표현은 특수문자도 사용할 수 없기 때문에 최대한의 요구도 강요하고 있다는 것이 문제이며, OP가 요구한 것은 아니라고 생각합니다.일반적으로 사용자가 원하는 만큼 강력한 암호를 만들 수 있도록 허용해야 합니다. 강력한 암호를 제한하는 이유는 무엇입니까?

그래서 그의 "최소 8자, 최소 1개의 문자와 1개의 숫자" 표현은 다음과 같습니다.

^(?=.*[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,}을 사용하다

의 Import 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. 하나 이상의 특수 문자

표준 패스워드 요건에 대해서는, 다음과 같은 것이 도움이 됩니다.

  • 알파벳 1개 이상

  • 최소 1자리

  • 공백 없음

  • 옵션 특수문자(@$!%*# 등)&^_-

  • 최소 8자 길이

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

또한 {8,32}과(와) 같은 최대 32자의 상한을 설정할 수도 있습니다.

이것을 사용해 보세요.

  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은 최대 글자 수 제한입니다.
  • ?=는 일치 표현식을 의미합니다.

이 방법은 효과가 있었습니다.

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*?&])([a-zA-Z0-9@$!%*?&]{8,})$
  • 최소 8자 길이
  • 소문자, 대문자, 숫자 및 특수문자 1개
  • 공백은 없습니다.

다음 사항이 필요한 경우 보다 엄격한 검증을 위해:

  1. 하나 이상의 대문자
  2. 하나 이상의 소문자
  3. 하나 이상의 숫자
  4. 하나 이상의 기호/특수 문자 @$!%*#?&^_-
  5. 최소 8자/자리

정규식:

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

좀 더 엄격한 사람에게 도움이 됐으면 좋겠어요.

질문에 직접 답하는 건 아니지만 꼭 정규식이어야 하나요?

저는 펄을 많이 해서 정규식 문제 해결에 익숙해졌습니다.하지만, 예측과 다른 기이한 점들로 인해 그들이 더 복잡해지면, 당신은 그 모든 작은 벌레들을 죽이기 위해 수십 개의 단위 테스트를 작성해야 한다.

또한 regex는 일반적으로 필수 솔루션 또는 기능 솔루션보다 몇 배 느립니다.

예를 들어 다음 스칼라 함수는 가장 일반적인 답변의 regex보다 약 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
}

다음 regex 솔루션을 검토하는 것은 어떨까요?

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

그럼 다음 사항이 검증됩니다.

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

다음 링크에서 확인하세요.https://regex101.com/r/qPmC06/4/

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+,.\\\/;':"-]).{8,}$
    

다른 옵션은 부정한 문자 클래스를 사용하여 룩어헤드 어사션에서 콘트라스트를 사용하는 것입니다.일치해야 할 문자와 일치하기 전에 나열된 문자를 제외한 모든 문자와 선택적으로 일치시킵니다.

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

regex 데모 보기

일부에서는 패턴이 일치합니다.

  • ^ of string (의 시작)
  • (?=[^A-Z\n]*[A-Z])긍정적인 예측, A-Z 또는 줄바꿈을 제외한 모든 문자를 0+배로 강조합니다. 다음 는 A-Z로 .
  • (?=[^a-z\n]*[a-z]) a-zchar a-z에 합니다.
  • (?=[^0-9\n]*[0-9]) ~ 9 의 어프로치입니다.
  • (?=[^#?!@$%^&*\n-]*[#?!@$%^&*-])하다고 입니다.
  • .{8,}한 임의의 시킵니다.
  • $의 끝

메모들

  • 점은 공백과 일치할 수도 있습니다.하지 않는 는, 「」를 해 주세요..{8,}로 할 수 \S{8,}의 공백 시킵니다.
  • 중 하나를 . ★★★★★★★★★★★★★★★★★」\S는 사전 검색 어설션에서 지정된 문자보다 많은 문자와 일치할 수 있습니다. " " " 를 변경할 수 ..{8,}만 일치시키다[#?!@$%^&*A-Za-z0-9-]{8,}

const regex = /^(?=[^A-Z\n]*[A-Z])(?=[^a-z\n]*[a-z])(?=[^0-9\n]*[0-9])(?=[^#?!@$%^&*\n-]*[#?!@$%^&*-]).{8,}$/;
[
  "abcA1#!A",
  "#!asdfSFD1;",
  "# a f F1 ;",
  "1111111111",
  "aaaaaaaa",
  "11111111",
  "AAAAAAAA",
  "########",
  "aA1#"
].forEach(s =>
  console.log(regex.test(s) ? `Match --> ${s}` : `No match --> ${s}`)
);

 

✅ 다음 4가지 정규식 패턴을 통해 거의 모든 암호 유효성 검사를 작성할 수 있습니다.

 

 

패턴 1:

 

비밀번호는 1 ~9 의 1 자리, 소문자, 대문자, 특수문자, 공백 없이 8 ~16 문자여야 합니다.

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

 

설명:

 

  • (?=.*[0-9])1~해야 함을 합니다.

 

  • (?=.*[a-z])는 패스워드에 소문자를 1개 포함해야 함을 의미합니다.

 

  • (?=.*[A-Z])는 비밀번호에 대문자를 1개 포함해야 함을 의미합니다.

 

  • (?=.*\W)비밀번호에 특수문자가 1개 포함되어 있어야 함을 의미합니다.

 

  • .{8,16}8~16일끝, 정규식 바로 요.$★★★★★★ 。

 

개요:

 

^는 문자열의 시작을 나타냅니다. $이치노

걸걸 if these를 ^&$할 수 regex는 패스워드의 최대 길이를 결정할 수 없습니다.예에서는 수 없다는 이 이 16자를 했습니다.이 조건을 만족시키기 위해 이 조건을 사용하고 있습니다.^&$

 

최대 길이 제한 제거:

 

  • .{8,16}를 사용했을 .{8,}에잇따라서 비밀번호의 최대 길이를 확인하는 조건은 없습니다.

 

숫자(자리)를 허용하지 않음:

 

  • (?=.*[0-9])를 사용했을 (?!.*[0-9])에 1~의 할 수 1 ~ 9」와의 ).(?=.*[0-9])입니다.!=)

 

다음 문자는 사용할 수 없습니다.

 

  • (?=.*\W)를 사용했을 (?!.*\W)와의 ).(?=.*\W)입니다.!=)

 

숫자(자리)의 대체 구문:

 

  • (?=.*[0-9]) , 을할 수도 .(?=.*\d)(?=.*\d), 1 ~9 의 1의 1 ~9 자리수를 포함할 가 있는 을 의미합니다.

 

 

패턴 2:

 

비밀번호는 1 ~9 의 1 자리, 소문자, 대문자, 밑줄, 기타 특수문자, 공백 없이 8 ~16 문자여야 합니다.

/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*_)(?!.*\W)(?!.* ).{8,16}$/

 

패턴 1과의 차이점

 

  • 기, 리를 사용했습니다.(?=.*_)이 사진에는 없는Pattern 1.

 

  • (?=.*_)(?!.*\W)는 패스워드에 밑줄을 사용할 필요가 있지만 다른 특수문자는 사용할 수 없음을 의미합니다.

 

패턴 3:

 

비밀번호는 1 ~9 의 1 자리, 소문자, 대문자, 밑줄, 공백 없이 8 ~16 문자여야 합니다.언더스코어 이외의 특수문자는 임의로 사용할 수 있습니다.

/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*_)(?!.* ).{8,16}$/

 

패턴 2와의 차이점

 

  • , 리, 우, 우, 우, 우, 우, 았, 았, 았, 았, 았을 사용하지 않았습니다.(?!.*\W) 있던 것Pattern 2.

 

  • ...(?=.*_)

 

  • ★★★★★★★★★★★★★★★★★★★★를 삭제하는 것만으로,(?!.*\W)이제 하나의 언더스코어가 필요하지만 다른 특수문자를 사용할 수도 있고 사용할 수도 없습니다.

 

패턴 4:

 

패스워드는 1 ~9 의 1 자리, 소문자, 대문자, 밑줄 각 1 자리, 8 ~16 문자여야 합니다.기타 특수문자 사용 및 공간 사용 여부는 옵션입니다.

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

 

패턴 3과의 차이점

 

  • , 리, 우, 우, 우, 우, 우, 았, 았, 았, 았, 았을 사용하지 않았습니다.(?=.*_)&(?!.* )에 실려있었어요.Pattern 3.

 

  • 「」를 삭제해 .(?=.*_)밑줄 이제 특수 문자를 전달하는 것은 선택 사항입니다.

 

  • 「」를 .(?!.* )

 

/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$/

이는 최소 1개의 대문자와 1개의 소문자와 1개의 숫자를 검증하는 동안 사용할 수 있는 간단한 방법입니다.

그리고 이것은 제가 express validation에서 사용하는 동안 예시입니다.

check('password')
    .notEmpty()
    .withMessage('Password cannot be null')
    .bail()
    .isLength({ min: 6 })
    .withMessage('Password must be at least 6 characters')
    .bail()
    .matches(/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$/)
    .withMessage(
      'Must have atleast 1 uppercase, 1 lowercase letter and 1 number'
    ),

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}`);
    });
}

pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"

당신의 필요에 따라 이 패턴은 정상적으로 동작할 것입니다.이거 드셔보세요.

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

@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,}$

나는 여기서 많은 문제점을 발견해서 나만의 문제를 만들었다.

여기 시험과 함께 영광이 가득하다.

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

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

주의해야 할 점:

  1. 않다\w에는 because because는는이 포함되어 있기 때문이다._내가 테스트하고 있는 거야
  2. 줄의 끝을 맞추지 않고 기호를 맞추는데 많은 어려움을 겪었어요.
  3. 기호를 구체적으로 지정하지 않습니다.또한 각 로케일에 따라 키보드에 사용하는 기호가 다를 수 있기 때문입니다.

데모:

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">

var strongRegex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})");
var mediumRegex = new RegExp("^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})");

Javascript에 최적

단순하게 바보같이 굴어:

이거면 항상 효과가 있을 거야

규규::^(.{0,7}|[^a-z]{1,}|[^A-Z]{1,}|[^\d]{1,}|[^\W]{1,})$|[\s]

비밀번호가 위의 regex와 일치하면 무효입니다.

일치하지 않는 경우 암호가 유효하며 8자 이상, 대문자 1자, 소문자 1자 및 기호 또는 특수 문자를 포함합니다.또한 공백, 탭 또는 줄 바꿈도 없습니다.

정규식 분석

  1. .{0,7}0 - 0~7글자일 경우 일치합니다.
  2. [^a-z]{1,} 수 - 를 찾을 수 없습니다.
  3. [^A-Z]{1,} 수 없는 합니다. - 대소문자를 찾을 수 .
  4. [^\d]{1,} [ 사이의 합니다.[ 0 - 9 ] - - 、 [ 0 - 9 ]으로 하겠습니다.
  5. [\s]탭줄때 、 、 탭 、 는 、 - 、 - 、 - 、 is - is is is - 。

이 접근법에서는 허용되는 기호에는 제한이나 제한이 없습니다.수 있는 를 몇 하려면 을 변경하기만 .[^\W][^YourSymbols].

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

다음의 조건을 만족시키려면 , 다음의 정규식을 사용합니다.

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

HTML5를 사용하면 됩니다.

패턴 속성에 아래 코드를 사용합니다.

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

완벽하게 작동할 것이다.

언급URL : https://stackoverflow.com/questions/19605150/regex-for-password-must-contain-at-least-eight-characters-at-least-one-number-a

반응형