자주 사용 하 는 자 바스 크 립 트 정규 표현 식 어 셈 블 리 와 예시 상세 설명

머리말
사용자 이름,비밀번호 강도,정수,숫자,이메일 주소(Email),핸드폰 번호,주민등록번호,URL 주소,IP 주소,16 진수 색상,날짜,마이크로 신호,차량 번호,중국어 정규 등 21 개의 자 바스 크 립 트 정규 표현 식 을 수집 하고 정리 했다.양식 검증 처리 필수,빨리 소장 하 세 요!
또 계속해서 새로운 정칙 에 가입 할 것 이 니,여러분 은 귀중 한 의견 을 많이 제시 하 세 요!
2.1 사용자 이름 정규
2.1.1 기본 사용자 이름 정규
사용자 등록 을 할 때 사용자 이름 정규 검 사 를 사용 합 니 다.
기본 사용자 이름 을 정의 하 는 규칙 은 다음 과 같 습 니 다.
최 단 4 위,최 장 16 위{4,16}4
  • 소문 자 큰 어머니[a-z]와 대문자[A-Z]를 포함 할 수 있 습 니 다
  • 숫자[0-9]를 포함 할 수 있 습 니 다
  • 밑줄[]포함 가능마이너스
    이니셜
  • 
    var pattern = /^[a-zA-Z][a-zA-Z0-9_-]{3,15}$/;
    //   true
    console.log("ifat3 : "+pattern.test('ifat3'));
    //   true
    console.log("Ifat3 : "+pattern.test('Ifat3'));
    //   true
    console.log("ke30 : "+pattern.test('ke30'));
    //   false
    console.log("30ke : "+pattern.test('30ke'));
    //   false
    console.log("ke3 : "+pattern.test('ke3'));
       false
    console.log("ke30@ : "+pattern.test('ke30@'));
    //   false
    console.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));
    2.1.2 중국어 사용자 이름 정규
    규칙 에 중국어 사용자 이름 을 추가 하면 정규 표현 식 을 다음 과 같이 변경 합 니 다.
    
    var pattern = /^[a-zA-Z\u4E00-\u9FA5][a-zA-Z0-9\u4E00-\u9FA5_-]{3,15}$/;
    //   true
    console.log("ifat3 : "+pattern.test('ifat3'));
    //   true
    console.log("Ifat3 : "+pattern.test('Ifat3'));
    //   true
    console.log("      : "+pattern.test('     '));
    //   false
    console.log("30ke : "+pattern.test('30ke'));
    //   false
    console.log("ke3 : "+pattern.test('ke3'));
    //   false
    console.log("ke30@ : "+pattern.test('ke30@'));
     //   false
    console.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));
    그 중에서 4 만 567914.한자 의 정규 일치 로 기본 한자 2 만 여 개 를 포함 하 는데 그 중에서\u4E 00 은 한자'1'을 나타 내 고 구체 적 으로 는 을 참조 하 시기 바 랍 니 다.
    2.2 암호 강도 정규
    
    //      ,  6 ,    1     ,1     ,1   ,1     
    var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
    //   true
    console.log("iFat3#:"+pPattern.test("iFat3#"));
    상기 정규 표현 식 은 사용자 의 암호 강 도 를 기본 적 인 통과 성 판정 만 할 수 있 습 니 다.암호 강도 검증 에 대해 더 많은 내용 을 참고 할 수 있 습 니 다.규칙 적 인 평 점 을 바탕 으로 하 는 암호 강도 검출 알고리즘 분석 과 실현.
    2.3 숫자 관련 정규
    2.3.1 정수 정규
    
    //     
    var posPattern = /^\d+$/;
    //     
    var negPattern = /^-\d+$/;
    //    
    var intPattern = /^-?\d+$/;
    //   true
    console.log("30:"+posPattern.test("30"));
    //   true
    console.log("-30:"+negPattern.test("-30"));
    //   true
    console.log("-30:"+intPattern.test("-30"));
    2.3.2 부동 소수점 정규
    
    //      
    var posPattern = /^\d*\.\d+$/;
    //      
    var negPattern = /^-\d*\.\d+$/;
    //      
    var twoPattern = /^-?\d*\.\d{2}$/; 
    //   true
    console.log("30.2:"+posPattern.test("30.2"));
    //   true 
    console.log("-30.2:"+negPattern.test("-30.2"));
    //   true 
    console.log("-30.22:"+twoPattern.test("-30.22"));
    2.3.3 정수 부동 소수점 정규
    정수 일 수도 있 고 부동 소수점 일 수도 있어 요.
    
    //    
    var posPattern = /^\d*\.?\d+$/;
    //    
    var negPattern = /^-\d*\.?\d+$/;
    //    
    var numPattern = /^-?\d*\.?\d+$/;
    //   true
    console.log("30.2:"+posPattern.test("30.2"));
    //   true 
    console.log("-30.2:"+negPattern.test("-30.2"));
    //   true 
    console.log("-30.2:"+numPattern.test("-30.2"));
    2.4 날짜 정규
    2.4.1 생년월일 정칙
    
    var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/;
    //   true
    console.log(pattern.test("1923-3-18"));
    //   true
    console.log(pattern.test("1923-4-31"));
    //   true
    console.log(pattern.test("1923-2-29"));
    //   true
    console.log(pattern.test("2016-2-29"));
    이 같은 정규 검증 이 완선 되 지 않 은 것 은 주로 2,4,6,9,11 월 의 일수 문제 다.
    2.4.2 통용 날짜 정규
    
    //    ,    
    var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
    //   true
    console.log(dP2.test("2017-02-11"));
    //   false
    console.log(dP2.test("2017-15-11"));
    //   false
    console.log(dP2.test("2017-02-29"));
    2.5 이메일 정규
    2.5.1 기본 이메일 정규
    
    var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   false
    console.log(pattern.test('[email protected]'));
    //   false
    console.log(pattern.test('  @30ke.cn'));
    기본 Email 은 가장 자주 사용 하 는 검증 방식 이 고 대부분의 응용 장면 에 도 적합 하 다.이상 의 테스트 를 통 해 알 수 있 듯 이 이 표현 식 은.online 및.store 의 끝 에 있 는 도 메 인 이름 을 지원 하지 않 습 니 다.이러한 도 메 인 이름(4 비트 이상)을 호 환 하려 면 정규 엔 딩(2,4 곶 의 제한 부분 을 조정 하면 됩 니 다(예:{2,8}).또 다른 문 제 는 이메일 사용자 이름 에 중국 어 를 포함 할 수 없다 는 것 이다.
    2.5.2 중국어 이름 이메일 정규
    앞의 정규 중의 문제 에 따라 다음 과 같은 두 가지 규칙 을 추가 합 니 다.
    사용자 이름 은 중국어[\u4e 00-\u9fa 5]를 포함 할 수 있 습 니 다.
    도 메 인 이름 의 끝 은 최대 8 비트{2,8}입 니 다.
    
    var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('  @30ke.cn'));
    2.5.3 특정 도 메 인 이름 이메일 정규
    휴대 전화 인증 코드 가 나 오기 전에 메 일 박스 검증 이 많 지 않 은 것 이 사용자 의 유일 성 을 보장 하 는 유일한 조건 이다.임시 메 일(10 분 메 일 또는 일회용 메 일)이 등장 하면 메 일 인증 과 계 정 활성화 라 는 메커니즘 이 의 미 를 잃 게 된다.임시 메 일의 주 소 는 셀 수 없 이 많 습 니 다.우 리 는 화이트 리스트 만 사용 할 수 있 고 제 한 된 메 일 도 메 인 이름 만 검증 할 수 있 습 니 다.
    
    var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|30ke.cn)$/;
    //   true
    console.log(pattern.test('[email protected]'));
    //   false
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   true
    console.log(pattern.test('[email protected]'));
    //   false
    console.log(pattern.test('[email protected]'));
    //   false
    console.log(pattern.test('  @30ke.cn'));
    이 방법 은 검증 안전성 을 보장 할 수 있 지만 화이트 리스트 가 너무 길 면 패턴 문자열 이 너무 길다.이 때 메 일 도 메 인 이름 화이트 리스트 를 배열 로 작성 하고 정규 표현 식 을 이용 하여 예비 검증 을 하고 화이트 리스트 로 도 메 인 이름 의 2 차 검증 을 할 수 있 습 니 다.
    상용 도 메 인 이름 화이트 리스트 그룹:
    
    var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com"];
    위 화이트 리스트 는 자주 사용 하 는 11 가지 메 일 도 메 인 이름 만 열거 되 어 있 으 며 필요 에 따라 적 절 히 보충 하거나 삭제 할 수 있다.
    2.6 핸드폰 번호 정규
    
    //     
    var mPattern = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$/;
    //   true
    console.log(mPattern.test("18600000000"));
    2.7 주민등록번호 정규
    
    //    (18 )  
    var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
    //   true
    console.log(cP.test("11010519880605371X"));
    상기 정칙 은 신분증 번호 에 대해 기본 적 인 통과 성 판정 만 할 수 있 고 공민 신분 번호 판정 에 관 한 더 많은 내용 은 문 서 를 참조 할 수 있다.공민 신분 번호 의 정확성 판정 과 절차 실현
    2.8 URL 정규
    
    //URL  
    var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
    //   true
    console.log(urlP.test(http://30ke.cn));
    2.9 IP 주소
    2.9.1 IPv 4 주소 정규
    
    //ipv4    
    var ipP = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
    //   true
    console.log(ipP.test("115.28.47.26"));
    2.9.2 IPv 6 주소 정규
    
    //IPV6  
    var pattern = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/;
    //   true
    console.log(pattern.test("fe80:0000:0000:0000:0204:61ff:fe9d:f156"));
    2.10 16 진수 색상 정규
    
    //RGB Hex    
    var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
    //   true
    console.log(cPattern.test("#b8b8b8"));
    2.11 QQ 번호 정규
    
    //QQ   ,5 11 
    var qqPattern = /^[1-9][0-9]{4,10}$/;
    //   true
    console.log(qqPattern.test("65974040"));
    2.12 마이크로 신호 정규
    
    //     ,6 20 ,     ,  ,  ,  ,   
    var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
    //   true
    console.log(wxPattern.test("RuilongMao"));
    2.13 차 번호 정규
    
    //     
    var cPattern = /^[                                 A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9     ]{1}$/;
    //   true
    console.log(cPattern.test(" K39006"));
    2.14 중국어 정규 포함
    
    //      
    var cnPattern = /[\u4E00-\u9FA5]/;
    //   true
    console.log(cnPattern.test("30 "));
    총결산
    위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 하 는 자주 사용 하 는 자 바스 크 립 트 정규 표현 식 어 셈 블 리 와 예 시 를 상세 하 게 설명 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
    만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

    좋은 웹페이지 즐겨찾기