어떻게 자바 script 정규 표현 식 으로 신분증 번호 가 합 법 적 인지 검증 합 니까?
사용자 가 입력 한 신분증 이 합 법 적 인지 아 닌 지 를 정규 표현 식 으로 판단 하 는 경우 가 많 습 니 다.정규 표현 식 으로 판단 하기 전에 신분증 번호 의 구성 에 대해 얼마나 알 고 있 습 니까?다음은 주민등록번호 에 얼마나 많은 정보 가 포함 되 어 있 는 지 알려 드 리 겠 습 니 다.
1.번호 의 구조
공민 신분 번 호 는 특징 조합 코드 로 17 자리 디지털 본체 코드 와 한 개의 검사 코드 로 구성 된다.배열 순 서 는 왼쪽 에서 오른쪽으로 여섯 자리 숫자 주소 코드,여덟 자리 숫자 생년월일 코드,세 자리 숫자 순서 코드 와 한 자리 숫자 검사 코드 로 나 뉜 다.
2.주소 코드(앞 여섯 자리)
인 코딩 대상 이 상주 호적 이 있 는 현(시,기,구)의 행정구 역 코드 를 나타 내 고 gb/T2260 의 규정 에 따라 집행 한다.
3.생년월일 번호(7 위~14 위)
인 코딩 대상 이 태 어 난 해,월,일 을 나타 내 고 gb/T7408 의 규정 에 따라 집행 하 며 년,월,일 코드 간 에 구분자 가 필요 하지 않 습 니 다.
4.순서 코드(15 위 에서 17 위)
같은 주소 코드 에 표 시 된 지역 범위 내 에서 같은 해,같은 달,같은 날 에 태 어 난 사람 에 게 정 해진 순서 번 호 를 나타 내 고 순서 번호 의 기 수 는 남성 에 게 분배 되 며 짝수 는 여성 에 게 분배 된다.
5.검사 코드(18 자리)
끝자리 번호 인 체크 코드 는 번호 작성 단위 가 통 일 된 공식 에 따라 계산 한 것 으로 누군가의 끝자리 가 0-9 이면 X 가 나 오지 않 지만 끝자리 가 10 이면 X 로 대체 해 야 한다.10 으로 끝자리 가 되면 이 사람의 신분증 은 19 명 이 되 기 때문이다.X 는 로마 숫자의 10 으로 10 을 X 로 대체 하면 공민의 신분증 이 국가 표준 에 부합 하도록 보장 할 수 있다.
주민등록번호 구조 가 각 부분 을 구성 한 다 는 뜻 을 알 고 우 리 는 주제 에 들 어가 기 시작 했다.
1.전국 지역 의 대상 정의
"북경",12:"천진",13:"하북",14:"산 서",15:"내몽고",21:"랴오닝",21:"랴오닝",22:"길 림",23:"흑룡강",31:"상해",32:"강 소",33:"절강",34:"안 후 이",35:"안 후 이",35:"복 건",36:"복 건",36:"강서",37:"산동",41:"하남",42:"후 베 이",43:"후 베 이",43:"호 남",44:"광 둥",45:"광 시",46:"광 시",46:"하 이 난",50:"충 칭",51:"충 칭",51:"쓰 촨",52:",",53:"운남",54:"티베트",61:"산 시",62:"감숙성",63:"청해",64:"영하",65:"신장",71:"대만",81:"홍콩",82:"마카오",91:"외국"}
2.정규 표현 식 판단
function isCardID(sId){
var iSum=0 ;
var info="" ;
if(!/^\d{17}(\d|x)$/i.test(sId)) return " ";
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null) return " ";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/")) ;
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return " ";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
if(iSum%11!=1) return " ";
//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?" ":" ");//
return true;
}
상기 내용 분석 은 바로 본 고의 모든 내용 으로 실현 방법 이 매우 간단 하 다.주로 각 신분증 번호 숫자 가 대표 하 는 뜻 을 이해 하면 매우 쉽다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.