2012-08-28 2 views
2

비밀번호 형식의 유효성을 검사하는 정규식 패턴이 필요합니다. 규칙은 다음과 같습니다 총 비밀번호의 정규식 패턴

  • 적어도 두 글자에

    • 최소 8 개 문자
    • 적어도 두 자리 숫자 나 기호

    내가 해낸 다음 /((?=.*[0-9\@\&#\$\?\%!\|(){}[]])(?=.*[a-zA-Z]).{8,})/

    둘 다 발생하는지 확인하지만 최소한 두 번 이상 발생하면 유효성을 검사해야합니다. 나는이 같은 {2,} 추가하는 경우 : 그러면 예를 들어 다음과 같은 나던 작업 /((?=.*[0-9\@\&#\$\?\%!\|(){}[]]{2,})(?=.*[a-zA-Z]{2,}).{8,})/

    을 : a1a1a1a1a1을

    아무도 도와 줄 수 ?

  • 답변

    3

    이 당신이 긍정적 인 lookaheads를 사용하여, 그것을 할 방법은 다음과 같습니다 http://regex101.com/r/uW0yI4

    /^(?=.*[a-z].*[a-z])(?=.*[!"#...\d].*[!"#...\d]).{8,}$/gmi

    그냥 당신이 일치 할 모든 기호 !"#...를 교체합니다.

    참고 : multiline 플래그는 응용 프로그램에 필요하지 않을 수 있습니다.

    +0

    는 단 하나의 작은 말, 너무 허용되지 않은 같은 문자 ~을 받아 들일 것입니다. 어떻게 그걸 막을 수 있니? – user1629636

    +0

    '.' 점을 허용하려는 문자 클래스로 변경하십시오. 예를 들면 다음과 같습니다.'/^(?==**[az].*[az])(?=.*[!"#...\d].*[[""...dd)[az \ d] {8,} $/gmi' –

    0

    이 후 당신이있어 무엇을 제공해야합니다 :이 작동

    ^((?=(.*[\d0-9\@\&#\$\?\%!\|(){}[\]]){2,})(?=(.*[a-zA-Z]){2,}).{8,})$