>  기사  >  웹 프론트엔드  >  숫자 및 알파벳 비밀번호 일치를 위한 정규식에 대한 간략한 분석

숫자 및 알파벳 비밀번호 일치를 위한 정규식에 대한 간략한 분석

微波
微波원래의
2017-06-28 13:30:441101검색

최근에 프로젝트를 진행하다가 숫자와 문자로 구성되어야 하고 숫자와 문자가 모두 포함되어야 하며 길이가 8~16자리 사이여야 한다는 요구 사항을 만났습니다. 구현 코드를 공유해드리겠습니다. 살펴보시기 바랍니다

사용자 등록 기능의 비밀번호는 다음과 같은 요구 사항을 갖습니다. 숫자와 문자로 구성되어야 하며, 숫자와 문자가 모두 포함되어야 하며, 길이는 반드시 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.