코드 복사 코드는 다음과 같습니다.
정규식 일치 URL
먼저 인터넷에 유통되는 버전에 대해 이야기해 보겠습니다.
[a-zA-z] ://[^s]*
대략, URL의 각 블록이 그룹화되지 않았습니다
수정 사항은 다음과 같습니다(인터넷에 유포되는 다른 버전):
var _url = "^((https|http|ftp|rtsp|mms)?://) ?" / /
"(([0-9a-z_!~*'().&= $%-] : )?[0-9a-z_!~*'().&= $%- ] @) ?" // ftp user@
"(([0-9]{1,3}.){3}[0-9]{1,3}" // IP 형식의 URL- 199.194 .52.184
"|" // IP 및 DOMAIN(도메인 이름) 허용
"([0-9a-z_!~*'()-] .)*" // 도메인 이름 - www. > "([ 0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 2차 도메인 이름
"[a-z]{2 ,6})" / / 첫 번째 수준 도메인 - .com 또는 .museum
"(:[0-9]{1,4})?" // 포트 - :80
"((/?) |" // 파일명이 없으면 슬래시가 필요하지 않습니다
"(/[0-9a-z_!~*'().;?@&= $,%#-] ) /? )$";
var rurl = new RegExp( _url, 'i' );
테스트:
rurl.exec( 'baidu.com' ) // ["baidu.com", 정의되지 않음, 정의되지 않음, 정의되지 않음, 정의되지 않음, "baidu.com", 정의되지 않음, "baid", 정의되지 않음, 정의되지 않음, "", "", 정의되지 않음]
rurl.exec( 'http://baidu.com' ) / /
rurl.exec( 'http://www.baidu.com' ) // ["http://baidu.com", "http://", "http", 정의되지 않음, 정의되지 않음, "baidu .com", undefound, "baid", undefound, undefine, "", "", undefine]
rurl.test( 'baidu' ) // true
그래도 사용하기 쉬운 것 같아요 별로 유용하지 않습니다. TODO를 배워야 합니다.
일치합니까? 계정 법적
먼저 인터넷에 유통되는 버전에 대해 이야기해 보겠습니다.
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
(시작 문자 포함, 5~16자 허용 섹션, 영숫자 밑줄 허용)
제한은 문자로 시작해야 합니다. 예를 들어 QQ 로그인 플랫폼에서는
제한이 밑줄로 시작할 수 없습니다. 예를 들어 Baidu에서는 허용하므로 간단합니다.
수정은 다음과 같습니다.
var ruser = /w{4,16}/
국내 전화번호 매칭
온라인에 유통되는 버전 매우 유용합니다:
d{3}-d{8}|d{4}-d{7}
설명: 일치 형식은 0511-4405222 또는 021-87888822
입니다.
Tencent QQ 계정과 일치
인터넷에 돌아다니는 버전은 매우 유용합니다:
[1-9][0-9]{4,}
댓글: Tencent QQ 숫자는 10000부터 시작합니다
중국 우편번호 일치
버전 인터넷에 유통되는 것은 매우 유용합니다:
[1-9]d{5}(?!d)
댓글: 중국 우편번호는 6자리 숫자입니다
코드 복사 코드는 다음과 같습니다.
신분증 일치
먼저 인터넷에 유통되는 버전에 대해 이야기해 보겠습니다.
d{15}|d{18}
d{15}
d{ 18} 네 판단은 좀 거칠지만
주소, 생년월일, 성별 등은 신분증에서 파싱이 가능하므로 특별한 설명은 다음과 같습니다.
z 신분증 규정
중국 신분증 은 15자리(1세대) 또는 18자리(2세대)인데 차이점은 2세대 인증서는 1세대 인증서 7자리 앞에 19만 추가하고 마지막에 인증코드를 추가한다는 점입니다. 18자리로 변환하여 18자리 숫자 구성(주소, 생일, 성별)을 구문 분석합니다.
코드는 다음과 같습니다.
function parseID(ID) {
if ( ID.length == 15 ) {
// 18비트로 업그레이드
ID = ID.substr( 0, 6 ) "19" ID.substr( 6 )
// 처음 17자리에 해당하는 계수
var Rank = [
"7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9 ", "10", "5", "8", "4" , "2"
];
// 처음 17은 가중치를 17로 나눈 나머지에 해당하는 마지막 ID 번호입니다
var last = [
"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2 "
];
// 가중 합계
for ( var i = 0, sum = 0, len = ID.length; i sum = ID[ i ] * 순위[ i ]// 마지막 숫자 추가
ID = last[ sum % 11 ]
if ( ID.length != 18 ) return null; >var match =rid.exec( ID );
return match ? {
ID : ID,
area : match[ 1 ],
y : match[ 2 ],
m : match[ 3 ],
d : match[ 4 ],
sex : match[ 5 ] % 2
} : null
}
제한 사항:
주소 코드는 다음과 같습니다. 여기서만 구문 분석되었습니다. 코드를 실제 주소로 변환하는 방법은 Du Niang에게 문의하세요.
l 반환된 개체의 성별은 1(남성) 또는 0(여성)이며, 페이지 표시에 필요한 경우 다음과 같이 변환할 수 있습니다. "남성" : "여성"
테스트:
console.info(parseID( "142327840821047" ) );
console.info(parseID("142327198408210470" )
참조:
http://baike.baidu. com/view/118340 .htm#1
코드 복사
코드는 다음과 같습니다. IP 주소 일치 먼저 인터넷에 유통되는 버전에 대해 이야기해 보겠습니다.
d .d .d .d
d 개수에는 제한이 없습니다
수정 사항은 다음과 같습니다.
var rip = /^(?:( ?:[01]?d{1,2}|2[0-4]d|25[0-5]).){3 }(?:[01]?d{1,2}|2[0 -4]d|25[0-5])$/
rip.test( "192.168.1.1" ) // true
rip.test( "0.0.0.0" ) // 참
rip.test( "255.255.255.255" ) // 참
rip.test( "256.255.255.255" ) // 거짓
그룹화를 더 늘립니다.
var rip2 = /^([01]?d {1,2}|2[0-4]d|25[0-5]).([01]?d{1, 2}|2[0-4]d|25[0-5]) ([01]?d{1,2}|2[0-4]d|25[0-5]).([01 ]?d{1,2}|2[0-4]d|25[ 0-5])$/;
rip2.exec( "192.168.1.1" ) // ["192.168.1.1", " 192", "168", "1", "1"]
rip2 .exec( "0.0.0.0" ) // ["0.0.0.0", "0", "0", "0", " 0"]
rip2.exec( "255.255.255.255" ) // [ "255.255.255.255", "255", "255", "255", "255"]
rip2.exec( "256.255 .255.255" ) // null