이번에는 숫자와 문자의 비밀번호를 완벽하게 일치시키는 규칙을 알려드리겠습니다(단계에 대한 자세한 설명). 실제 사례를 살펴보겠습니다.
사용자 등록 기능을 위한 비밀번호는 다음과 같은 요건을 갖추고 있습니다. 숫자와 문자로 구성되어야 하며, 숫자와 문자를 모두 포함해야 하며, 길이는 8~16자 사이여야 합니다.
요구 사항을 분석하는 방법은 무엇입니까? 나뉘다! 이것이 소프트웨어 디자인의 일반적인 아이디어입니다. 따라서 분할 요구 사항은 다음과 같습니다.
1, 모든 숫자가 아님
2, 모든 문자가 아님
3, 숫자 또는 문자여야 함
위의 세 가지 요구 사항을 동시에 충족할 수 있는 한,
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
별도로 코멘트를 하자면:
^은 줄의 시작 위치와 일치합니다.
(?![0-9]+$)는 해당 위치 뒤에 숫자가 오지 않을 것이라고 예측합니다
(?! [a-zA-Z]+ $) 해당 위치 뒤에 문자가 오지 않을 것으로 예측합니다.
[0-9A-Za-z] {8,16}은 8~16개의 숫자 또는 문자로 구성됩니다.
$ 끝 부분과 일치합니다. 줄 위치
참고: (?! xxxx)는정규 표현식의 너비가 0인 부정 어설션 형식으로, 이 위치 뒤의 문자가 xxxx가 아님을 나타냅니다. 테스트 예제는 다음과 같습니다.
public class Test { public static void main(String[] args) throws Exception { String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$"; String value = "aaa"; // 长度不够 System.out.println(value.matches(regex)); value = "1111aaaa1111aaaaa"; // 太长 System.out.println(value.matches(regex)); value = "111111111"; // 纯数字 System.out.println(value.matches(regex)); value = "aaaaaaaaa"; // 纯字母 System.out.println(value.matches(regex)); value = "####@@@@#"; // 特殊字符 System.out.println(value.matches(regex)); value = "1111aaaa"; // 数字字母组合 System.out.println(value.matches(regex)); value = "aaaa1111"; // 数字字母组合 System.out.println(value.matches(regex)); value = "aa1111aa"; // 数字字母组合 System.out.println(value.matches(regex)); value = "11aaaa11"; // 数字字母组合 System.out.println(value.matches(regex)); value = "aa11aa11"; // 数字字母组合 System.out.println(value.matches(regex)); } }
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
js에서 정규식을 사용하는 방법(코드 포함)정규식을 사용하여 사용자의 계정 비밀번호, 휴대폰 번호 및 ID 카드를 확인하는 방법위 내용은 숫자 및 알파벳 비밀번호의 정기적인 일치(세부 단계)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!