문자열에 3 개 이상의 대문자, 3 개의 소문자 및 1 개 이상의 특수 문자가 있는지 확인하는 정규식이 필요합니다.
현재 나는 이것을 가지고있다 :
^(?=.*[a-z]{3,})(?=.*[A-Z]{3,})(?=.*\d)(?=.*(_|[^\w])).+$
그러나 캐릭터가 서로 옆에있을 때만 작동합니다.
일치해야하는 항목의 예 :
S4L4S6na#a
이것은 작동합니다
(?=(.*[A-Z]){3})(?=(.*[a-z]){3})(?=.*(_|[^\w]))
숫자도 포함하려면
(?=.*\d)(?=(.*[A-Z]){3})(?=(.*[a-z]){3})(?=.*(_|[^\w]))
댓글에 따른 추가 최적화
당신은 사용할 수 있습니다 non-greedy
위의 최적화 방식을 regex
사용할 [\W_]
대신(_|[^\w])
(?=(.*?[A-Z]){3})(?=(.*?[a-z]){3})(?=.*?[\W_])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다