Node.js 주민등록번호 로 나이,생년월일,성별 검증 방법 예시
여러분 이 자신의 나이,생년월일 과 성별,또는 다른 사람의 것 을 알 고 싶다 면 저 에 게 신분증 번 호 를 주 십시오.사실은 아주 간단 합 니 다.아래 코드 를 보 세 요.
node.js 구현
static validateIdNumberToAgeYear(str){
let date = new Date();
let currentYear = date.getFullYear();
let currentMonth = date.getMonth() + 1;
let currentDate = date.getDate();
let idxSexStart = str.length == 18 ? 16 : 14;
let birthYearSpan = str.length == 18 ? 4 : 2;
let year;
let month;
let day;
let sex;
let birthday;
let age;
//
let idxSex = 1 - str.substr(idxSexStart, 1) % 2;
sex = idxSex == '1' ? ' ' : ' ';
//
year = (birthYearSpan == 2 ? '19' : '') + str.substr(6, birthYearSpan);
month = str.substr(6 + birthYearSpan, 2);
day = str.substr(8 + birthYearSpan, 2);
birthday = year + '-' + month + '-' + day;
//
let monthFloor = (currentMonth < parseInt(month,10) || (currentMonth == parseInt(month,10) && currentDate < parseInt(day,10))) ? 1 : 0;
age = currentYear - parseInt(year,10) - monthFloor;
// console.log(" "+year+" "+month+" "+day+" "+", "+age+" "+", "+sex);
if(age >= 18){
return true;
}
return false;
}
나 는 단지 나이 판단 을 했 을 뿐이다.js 로 도 가능
1.사용자 정의 js 클래스 는 다음 과 같 습 니 다.
// , 15 18
function clsIDCard(CardNo) {
this.Valid = false;
this.ID15 = '';
this.ID18 = '';
this.Local = '';
if (CardNo != null)
this.SetCardNo(CardNo);
}
// ,15 18
clsIDCard.prototype.SetCardNo = function(CardNo) {
this.ID15 = '';
this.ID18 = '';
this.Local = '';
CardNo = CardNo.replace(" ", "");
var strCardNo;
if (CardNo.length == 18) {
pattern = /^\d{17}(\d|x|X)$/;
if (pattern.exec(CardNo) == null)
return;
strCardNo = CardNo.toUpperCase();
} else {
pattern = /^\d{15}$/;
if (pattern.exec(CardNo) == null)
return;
strCardNo = CardNo.substr(0, 6) + '19' + CardNo.substr(6, 9)
strCardNo += this.GetVCode(strCardNo);
}
this.Valid = this.CheckValid(strCardNo);
}
//
clsIDCard.prototype.IsValid = function() {
return this.Valid;
}
// , ,1981-10-10
clsIDCard.prototype.GetBirthDate = function() {
var BirthDate = '';
if (this.Valid)
BirthDate = this.GetBirthYear() + '-' + this.GetBirthMonth() + '-'
+ this.GetBirthDay();
return BirthDate;
}
// , ,1981
clsIDCard.prototype.GetBirthYear = function() {
var BirthYear = '';
if (this.Valid)
BirthYear = this.ID18.substr(6, 4);
return BirthYear;
}
// , ,10
clsIDCard.prototype.GetBirthMonth = function() {
var BirthMonth = '';
if (this.Valid)
BirthMonth = this.ID18.substr(10, 2);
if (BirthMonth.charAt(0) == '0')
BirthMonth = BirthMonth.charAt(1);
return BirthMonth;
}
// , ,10
clsIDCard.prototype.GetBirthDay = function() {
var BirthDay = '';
if (this.Valid)
BirthDay = this.ID18.substr(12, 2);
return BirthDay;
}
// ,1: ,0:
clsIDCard.prototype.GetSex = function() {
var Sex = '';
if (this.Valid)
Sex = this.ID18.charAt(16) % 2;
return Sex;
}
// 15
clsIDCard.prototype.Get15 = function() {
var ID15 = '';
if (this.Valid)
ID15 = this.ID15;
return ID15;
}
// 18
clsIDCard.prototype.Get18 = function() {
var ID18 = '';
if (this.Valid)
ID18 = this.ID18;
return ID18;
}
// , : 、
clsIDCard.prototype.GetLocal = function() {
var Local = '';
if (this.Valid)
Local = this.Local;
return Local;
}
clsIDCard.prototype.GetVCode = function(CardNo17) {
var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var Ai = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var cardNoSum = 0;
for (var i = 0; i < CardNo17.length; i++)
cardNoSum += CardNo17.charAt(i) * Wi[i];
var seq = cardNoSum % 11;
return Ai[seq];
}
clsIDCard.prototype.CheckValid = function(CardNo18) {
if (this.GetVCode(CardNo18.substr(0, 17)) != CardNo18.charAt(17))
return false;
if (!this.IsDate(CardNo18.substr(6, 8)))
return false;
var aCity = {
11 : " ",
12 : " ",
13 : " ",
14 : " ",
15 : " ",
21 : " ",
22 : " ",
23 : " ",
31 : " ",
32 : " ",
33 : " ",
34 : " ",
35 : " ",
36 : " ",
37 : " ",
41 : " ",
42 : " ",
43 : " ",
44 : " ",
45 : " ",
46 : " ",
50 : " ",
51 : " ",
52 : " ",
53 : " ",
54 : " ",
61 : " ",
62 : " ",
63 : " ",
64 : " ",
65 : " ",
71 : " ",
81 : " ",
82 : " ",
91 : " "
};
if (aCity[parseInt(CardNo18.substr(0, 2))] == null)
return false;
this.ID18 = CardNo18;
this.ID15 = CardNo18.substr(0, 6) + CardNo18.substr(8, 9);
this.Local = aCity[parseInt(CardNo18.substr(0, 2))];
return true;
}
clsIDCard.prototype.IsDate = function(strDate) {
var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
if (r == null)
return false;
var d = new Date(r[1], r[2] - 1, r[3]);
return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[2] && d
.getDate() == r[3]);
}
2.페이지 는 새로운 대상 을 만 들 고 데이터 검증 을 전달 하 며 관련 데이터(주소|생년월일|성별)를 얻 을 수 있 습 니 다.
$("#cardNo").blur(function(event){
var idCard = $(this).val();
var checkFlag = new clsIDCard(idCard);
if( !checkFlag.IsValid() ){
alert(" ");
return false;
}else{
alert( " : " + checkFlag.GetBirthDate() +" :" + checkFlag.GetLocal() +" sex:" + checkFlag.GetSex() );
}
});
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.