일반적인 Regex 표현 식 (RFC 표준 email 검사 업데이트)
6069 단어 정규 표현 식
정상 적 인 숫자 (digit) 를 제외 하고 플러스, 마이너스, 과학 계수 법, 작은 숫자, 심지어 쉼표 로 천 분 위 를 나 눌 수도 있다.
논리 규칙:
상기 조건 을 만족 시 키 고 숫자 를 검사 하 는 정규 표현 식 은: ^ [+ -]? \d+(,\d+)*(.\d+(e\d+)?)?$
이 조건 에 맞 는 example 는 다음 과 같 습 니 다.
전화번호 (전화번호)
미국의 전화번호 규칙: 총 10 자리 숫자 이지 만 국가 번호 1 이 있 을 수 있 습 니 다.받 아들 일 수 있 는 입력 형식 은 다음 과 같 습 니 다:
더 나 아가 국가 번호 의 검증 을 (+? \ d + [\ s -] 로 수정 할 수 있 습 니까?이렇게 하면 + 86, 86, 86 - 와 같은 형식 을 지원 할 수 있다.
중국의 휴대 전화 규칙: 총 11 자리 숫자 로 일반적인 상황 에서 어떠한 특수 기호 도 추가 하지 않 는 다.다음 4 가지 형식 만 고려한다 면:
상기 조건 을 만족 시 켜 중국 핸드폰 번 호 를 검사 하 는 정규 표현 식 은 ^ (+ 86 [\ s -]?)? \d{11}$
메 일 (이메일)
업무 수요 로 인해 RFC 가 메 일 주소 에 대한 표준 요 구 를 더욱 상세 하 게 찾 아 보 았 다.구 글 은 오랫동안 믿 을 만 한 중국어 번역 을 찾 지 못 했다.여기 서 공유 하 겠 습 니 다. RFC 의 어 려 운 문 서 를 더 이상 고 통 스 럽 게 뒤지 지 않 았 으 면 좋 겠 습 니 다.
RFC 3696 의 규정 에 따라 이메일 주소 (Email Address) 는 @ 기호 에 의 해 다음 과 같은 두 가지 구성 부분 으로 나 뉜 다. local name 과 domain name.
Local Name
Domain Name
^[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 주소 의 검사 정규 가 추가 되 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.