身分証明書番号、電話番号のチェック
いくつかの有用な正則検査をまとめ、まず身分証明書番号の検査、電話番号の検査を行う.
中国の身分証明書番号を検証する
電話番号のチェック
中国の身分証明書番号を検証する
/**
*
* ,
* : , ,
*/
function isChinaIDCard(StrNo){
StrNo = StrNo.toString();
if(StrNo.length == 15){
if(!isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2))){return false;}
}else if(StrNo.length == 18){
if (!isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2))){return false;}
}else{
alert(" 15 18 !");
return false;
}
if (StrNo.length==18)
{
var a,b,c
if (!isNumber(StrNo.substr(0,17))){alert(" , 17 !");return false;}
a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
b=a%11;
if (b==2) //
{
c=StrNo.substr(17,1).toUpperCase(); // X
}
else
{
c=parseInt(StrNo.substr(17,1));
}
switch(b)
{
case 0: if ( c!=1 ) {alert(" : :1");return false;}break;
case 1: if ( c!=0 ) {alert(" : :0");return false;}break;
case 2: if ( c!="X") {alert(" : :X");return false;}break;
case 3: if ( c!=9 ) {alert(" : :9");return false;}break;
case 4: if ( c!=8 ) {alert(" : :8");return false;}break;
case 5: if ( c!=7 ) {alert(" : :7");return false;}break;
case 6: if ( c!=6 ) {alert(" : :6");return false;}break;
case 7: if ( c!=5 ) {alert(" : :5");return false;}break;
case 8: if ( c!=4 ) {alert(" : :4");return false;}break;
case 9: if ( c!=3 ) {alert(" : :3");return false;}break;
case 10: if ( c!=2 ){alert(" : :2");return false;}
}
} else {//15
if (!isNumber(StrNo)) {alert(" , 15 !");return false;}
}
return true;
}
function isValidDate(iY, iM, iD) {
if (iY>2200 || iY<1900 || !isNumber(iY)){
alert(" , "+iY+" !"); return false;}
if (iM>12 || iM<=0 || !isNumber(iM)){
alert(" , "+iM+" !");
return false;
}
if (iD>31 || iD<=0 || !isNumber(iD)){
alert(" , "+iD+" !");
return false;
}
return true;
}
/**
*
*/
function isNumber(oNum) {
if(!oNum) return false;
var strP=/^\d+(\.\d+)?$/;
if(!strP.test(oNum)) return false;
try{
if(parseFloat(oNum)!=oNum) return false;
}
catch(ex)
{
return false;
}
return true;
}
電話番号のチェック
/**
*
*/
function IsTelephone(obj){
var patternPhone = /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/;
var patternMobile = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/;
if(patternPhone.test(obj)||patternMobile.test(obj)){
return true;
}
return false;
}