일반적인 Regex 표현 식 (RFC 표준 email 검사 업데이트)

6069 단어 정규 표현 식
숫자 (숫자)
정상 적 인 숫자 (digit) 를 제외 하고 플러스, 마이너스, 과학 계수 법, 작은 숫자, 심지어 쉼표 로 천 분 위 를 나 눌 수도 있다.
논리 규칙:
  • 시작 하면 반드시 + / - 번 이 고 없어 도 됩 니 다 ^ [+ -]?
  • 적어도 한 자리 이상 의 숫자 가 있 습 니 다. \ d +
  • 1000 분 의 비트 로 구 분 된 쉼표 를 따라 갈 수 있 습 니 다. 3 비트 로 구 분 될 지 는 잠시 고려 하지 않 고 규칙 은 한 번 또는 여러 번 (, \ d +) *
  • 이 나타 날 수 있 습 니 다.
  • 소수 라면 소수점 뒤에 최소 한 자리 이상 의 숫자 가 있어 야 합 니 다. 규칙 은 한 번 만 나타 날 수 있 습 니 다 (. \ d +)
  • 과학 계수 법 이 라면 앞 에는 반드시 소수 이 고 뒤 에는 e 와 차 멱 이 있 으 며 규칙 은 한 번 만 나타 날 수 있다 (. \ d + (e \ d +)
  • 모든 숫자의 끝 은 반드시 숫자
  • 여야 한다.
    상기 조건 을 만족 시 키 고 숫자 를 검사 하 는 정규 표현 식 은: ^ [+ -]? \d+(,\d+)*(.\d+(e\d+)?)?$
    이 조건 에 맞 는 example 는 다음 과 같 습 니 다.
  • 3 (정수)
  • 3.14 (소수)
  • + 3.14 (+ 표지 숫자 가 있 음)
  • - 2.5 (띠 - 표지 숫자)
  • 128, 234 (회계 계수 법)
  • 1.9e 10 (과학 계수 법)
  • 또한 소수점 을 걸 러 내 고 여러 번 반복 되 며 과학기술 법 이 규정 에 맞지 않 거나 여러 번 반복 되 어야 합 니 다. 예 를 들 어 720 p 가 아 닌 문자열 은 여기 서 특히 과학적 인 조건 에 주의해 야 합 니 다. 앞 에는 합 법 적 인 소수 뒤에 e 와 차 멱 이 있어 야 합 니 다. 차 멱 이 있어 야 합 니 다.
    전화번호 (전화번호)
    미국의 전화번호 규칙: 총 10 자리 숫자 이지 만 국가 번호 1 이 있 을 수 있 습 니 다.받 아들 일 수 있 는 입력 형식 은 다음 과 같 습 니 다:
  • xxx-xxx-xxxx
  • xxx xxx xxxx
  • (xxx)xxx-xxxx
  • xxxxxxxxxx
  • 1 상기 형식 조합
  • + 1 상기 형식 조합
  • 상기 조건 을 만족 시 키 고 미국 전 화 를 검사 하 는 정규 표현 식 은 ^ (+? 1 [\ s -]) 입 니까?(?\d{3})?[\s-]?\d{3}[\s-]?\d{4}$
    더 나 아가 국가 번호 의 검증 을 (+? \ d + [\ s -] 로 수정 할 수 있 습 니까?이렇게 하면 + 86, 86, 86 - 와 같은 형식 을 지원 할 수 있다.
    중국의 휴대 전화 규칙: 총 11 자리 숫자 로 일반적인 상황 에서 어떠한 특수 기호 도 추가 하지 않 는 다.다음 4 가지 형식 만 고려한다 면:
  • xxxxxxxxxxx
  • +86-xxxxxxxxxxx
  • +86 xxxxxxxxxxx
  • +86xxxxxxxxxxx

  • 상기 조건 을 만족 시 켜 중국 핸드폰 번 호 를 검사 하 는 정규 표현 식 은 ^ (+ 86 [\ s -]?)? \d{11}$
    메 일 (이메일)
    업무 수요 로 인해 RFC 가 메 일 주소 에 대한 표준 요 구 를 더욱 상세 하 게 찾 아 보 았 다.구 글 은 오랫동안 믿 을 만 한 중국어 번역 을 찾 지 못 했다.여기 서 공유 하 겠 습 니 다. RFC 의 어 려 운 문 서 를 더 이상 고 통 스 럽 게 뒤지 지 않 았 으 면 좋 겠 습 니 다.
    RFC 3696 의 규정 에 따라 이메일 주소 (Email Address) 는 @ 기호 에 의 해 다음 과 같은 두 가지 구성 부분 으로 나 뉜 다. local name 과 domain name.
    Local Name
  • 길이 가 64 자 를 초과 하지 않 습 니 다
  • @, 역 슬 래 쉬 (), 더 블 따옴표 ("), 쉼표 와 괄호 ([]) 를 제외 한 모든 ASCII Graphic 문자 로 구성 할 수 있 습 니 다.
  • 마침표 (.) 를 사용 할 수 있 지만 맨 끝 에 나타 나 면 안 됩 니 다
  • 오래된 시스템, 특수 목적 의 서버 와 같은 특수 한 상황 에 대해 서 는 모든 ASCII 문자 (제어 문 자 를 포함) 를 사용 할 수 있 으 나, 반드시 역 슬 래 쉬 전의 단일 문 자 를 사용 하거나, 더 블 따옴표 로 전체 문자열 을 변환 해 야 합 니 다.

  • Domain Name
  • 길이 가 255 자 를 초과 하지 않 습 니 다
  • 자모, 숫자, 짧 은 횡선 (-)
  • 만 사용 할 수 있다.
  • 짧 은 횡선 (-) 을 사용 할 수 있 지만 수미 의 위치 에 나타 나 면 안 된다
  • 나머지 요 구 는 최상 위 도 메 인 이름 의 화이트 리스트 를 포함 하고 모든 도 메 인 이름 은 64 자 를 초과 해 서 는 안 되 며 모두 숫자 로 구성 해 서 는 안 된다 는 등
  • 일상적인 사용 에 있어 서 Local Name 의 4 번 째 요구 사항 1 과 Domain Name 이 도 메 인 이름 의 합 법성 에 대한 필 터 를 무시 합 니 다. 다음 정규 표현 식 을 사용 하여 Email 의 합 법성 을 검사 할 수 있 습 니 다.
    ^[A-Za-z0-9!#$%&'+/=?^_`{|}~-]+(.[A-Za-z0-9!#$%&'+/=?^_`{|}~-]+)*@([A-Za-z0-9]+(?:-[A-Za-z0-9]+)?.)+[A-Za-z0-9]+(-[A-Za-z0-9]+)?$
    자 바스 크 립 트 를 사용 하면 split 함 수 를 통 해 각 부분의 길 이 를 더 검사 할 수 있 습 니 다.
    isemail: function(string){
        if(typeof string === "string"){
            var regex = /^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@([A-Za-z0-9]+(?:-[A-Za-z0-9]+)?\.)+[A-Za-z0-9]+(?:-[A-Za-z0-9]+)?$/;
            var temp = string.split("@");
            return regex.test(string) && temp[0].length <= 64 && temp[1].length <= 255;
         }
         else{
             return false;
         }
    }
    

    메 일의 형식 은 비교적 복잡 하 다. 비록 실제 적 으로 다단 계 도 메 인 이름 을 허용 하지만 길 이 를 255 글자 이내 로 보장 하면 된다.그러나 더욱 흔히 볼 수 있 는 상황 은 @ 앞에서 문자 와. 를 사용 하 는 상황, 그리고 @ 뒤에 2 급 도 메 인 이름 이 있 을 수 있 는 상황 을 고려 하 는 것 입 니 다.엄격 성 을 요구 하지 않 고 사용자 에 대한 알림 역할 만 한다 면 상기 조건 을 만족 시 켜 메 일 을 검사 하 는 정규 표현 식 은 ^ [\ w.] + (+ [\ w.] +)? @ \ \w+(.\w+){1,2}$
    가능 하 다 면 원 리 를 이해 한 후에 도 성숙 한 라 이브 러 리 자체 의 email 검사 함 수 를 사용 하 는 것 을 더욱 추천 합 니 다. 반복 적 으로 바퀴 를 만 드 는 것 은 매우 효율 적 인 일이 아니 기 때 문 입 니 다.
    비밀번호
    강도 가 다른 비밀 번 호 는 최소한 숫자 나 알파벳 을 포함해 야 합 니 다. [\ da - zA - Z] \ d + [a - zA - Z] + [\ da - zA - Z]
    숫자, 알파벳, 특수 문자 3 가 지 를 섞 어 배열 해 야 합 니 다: (\ \ \ d + [- ZA- Z - Z] + [- =\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+) # |(\d+[- = \ \ []; ',.. / ~! @ # # $% ^ & () + + + [?] + [- ZA- Z] + + 숫자 로 시작 | ([- zA - Z] + \ \ d + [- =\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+) # |([a-zA-Z]+[- = \ \ []];;',.. / ~! @ # # $%%% & () + {}: "IP 주소
    IP 주 소 는 마침표 (.) 를 사용 하여 분 단 된 4 개의 숫자 시퀀스 로 구성 되 어 있 으 며, 각 단락 의 수 치 는 0 - 255 사이 입 니 다. 숫자 는 문자 로 취급 되 고 크기 관계 가 없 기 때문에 정규 표현 식 으로 숫자 범 위 를 검사 하 는 것 은 매우 번 거 로 운 일 입 니 다.
    IP 주 소 를 검사 하 는 정규 표현 식 은 다음 과 같 습 니 다.
    자 바스 크 립 트 를 사용 해서 조금 더 우아 한 표현 을 할 게 요.
    ip: function(string){
        var octet = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])';
        var ip    = '(?:' + octet + '\\.){3}' + octet;
        var ipRE  = new RegExp( '^' + ip + '$' );
        return ipRE.test(string);
    }
    

    HTML
    HTML 은 정규 표현 식 이 아 닌 다른 방식 으로 걸 러 내 는 것 을 추천 합 니 다. 태그 가 져 오기: 태그 내용 가 져 오기: > ([\ w \ \ s]) < Attribute 값 가 져 오기: = ([\ w: /.])
    기록 을 갱신 하 다
    2014 년 9 월 5 일 수정 한 정규 표현 식 에 서 는 고려 하지 않 았 습 니 다[email protected]이러한 내용 도 true 로 판 정 됩 니 다. 정규 표현 식 에 대해 서 는 '모든 문자열 일치' 가 아니 라 '정규 표현 식 에 맞 는 내용' 이 나타 나 면 됩 니 다.이해 가 잘 되 지 않 는 다. 결국 성숙 한 라 이브 러 리 를 추천 하 는 것 이 좋 을 것 같다. 바퀴 를 반복 하 는 것 은 너무 비효 율 적 인 일이 기 때문이다.
    2015 년 3 월 4 일 RFC 규정 에 따라 RFC 의 상세 한 요구 에 부합 하 는 email 의 정규 표현 식 이 업데이트 되 었 습 니 다. IP 주소 의 검사 정규 가 추가 되 었 습 니 다.
  • Local Name 의 네 번 째 요 구 를 고려 하지 않 았 지만 RFC 에 서 는 브 라 우 저 (Client Side) 단 검 사 는 이 형식의 입력 을 거부 하지 말고 메 일 서버 에 맡 겨 실제 실행 과정 에서 합 법성 을 판단 해 야 한다 고 규정 하고 있 습 니 다. 이러한 형식 은 사실 완전히 합 법 적 이기 때 문 입 니 다. 여 기 는 제 가 게 으 름 을 피 웠 습 니 다. ↩
  • 좋은 웹페이지 즐겨찾기