當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript页面校验
生活随笔
收集整理的這篇文章主要介紹了
JavaScript页面校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
身份證校驗//身份證號碼校驗,并從中拆分出出生年月日和性別
var?yyyy;
var?mm;
var?dd;
var?birthday;
var?sex;
var?province;
function?getYear(){
????return?yyyy;
}
function?getMonth(){
????return?mm;
}
function?getDate(){
????return?dd;
}
function?getBirthday(){
????return?birthday;
}
function?getSex(){
????return?sex;
}
function?getAge(){
????var?mm=getMonth();
????if?(mm<10)
????????????mm=mm.substring(1 >,2);
????return?Math.floor((parseInt(_getYear())*12+parseInt(_getMonth())-parseInt(getYear())*12-parseInt(mm))/12);
}
//判斷是否大齡,男50,女40
function?isBigAge(){
????if?(parseInt(getAge())>=40?&&?parseInt(getSex())==2)
????????return?"1";
????if?(parseInt(getAge())>=50?&&?parseInt(getSex())==1)
????????return?"1";
????return?"0";
}
//校驗身份證號碼
function?CheckValue(idCard){
????var?id=idCard;
????var?id_length=id.length;
????if?(id_length==0){
????????alert("請輸入身份證號碼!");
????????return?false;
????}
????if?(id_length!=15?&&?id_length!=18){
????????alert("身份證號碼長度應為15位或18位!");
????????return?false;
????}
????if?(id_length==15){
????????
????????province=id.substring(0,2);
????????if?(!ValidateProvince(province)){
????????????alert("身份證號碼地區非法!");
????????????return?false;
????????}????????
????????
????????mm=id.substring(8,10);
????????if?(!(mm>0?&&?mm<=12)){
????????????alert("身份證號碼月份非法!");
????????????return?false;
????????}
????????
????????????????dd=id.substring(10,12);
????????if(!ValidateDate(dd)){
????????????alert("身份證號碼日期非法!");
????????????return?false;
????????}
????????
????????????????yyyy="19"+id.substring(6,8);
????????birthday=yyyy+?"-"?+mm+?"-"?+dd;
????????if?("13579".indexOf(id.substring(14,15))!=-1){
????????????sex="1";
????????}else{
????????????sex="2";
????????}
????}else?if?(id_length==18){
????????
????????province=id.substring(0,2);
????????if?(!ValidateProvince(province)){
????????????alert("身份證號碼地區非法!");
????????????return?false;
????????}
????????yyyy=id.substring(6,10);
????????if?(!(yyyy>=1900?&&?yyyy<=2200)){
????????????alert("身份證號碼年度非法!");
????????????return?false;
????????}
????????mm=id.substring(10,12);
????????if?(!(mm>0?&&?mm<=12)){
????????????alert("身份證號碼月份非法!");
????????????return?false;
????????}
????????dd=id.substring(12,14);
????????????????if(!ValidateDate(dd)){
????????????alert("身份證號碼日期非法!");
????????????return?false;
????????}
????????if?(id.charAt(17)!=GetVerifyBit(id)){
????????????alert("身份證校驗錯誤,請檢查最后一位!");
????????????return?false;
????????}
????????birthday=id.substring(6,10)?+?"-"?+?id.substring(10,12)?+?"-"?+?id.substring(12,14);
????????if?("13579".indexOf(id.substring(16,17))?>?-1){
????????????sex="1";
????????}else{
????????????sex="2";
????????}
????}
????return?true;
}
//校驗地區
function?ValidateProvince(province)
{
????????var?provinceArray={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(provinceArray[parseInt(province)]!=null)?return?true;
????????return?false;
}
//校驗日期
function?ValidateDate(dd)?
{??
??????//創建各月份天數查找表(2月份除外)
??????var?arrayLookup?=?{?'01'?:?31,'03'?:?31,?'04'?:?30,'05'?:?31,'06'?:?30,'07'?:?31,'08'?:?31,'09'?:?30,'10'?:?31,'11'?:?30,'12'?:?31,'1'?:?31,'3'?:?31,?'4'?:?30,'5'?:?31,'6'?:?30,'7'?:?31,'8'?:?31,'9'?:?30}??????
??????//校驗月份和天數
??????if(arrayLookup[mm]?!=?null)?{
????????????if(dd?<=?arrayLookup[mm]?&&?dd?!=?0)
????????return?true;?
????}
??????//校驗2月份天數(考慮閏年)
????????var?isLeapYear?=?(yyyy?%?4?==?0?&&?(yyyy?%?100?!=?0?||?yyyy?%?400?==?0));
????if(?((isLeapYear?&&?dd?<=?29)?||?(!isLeapYear?&&?dd?<=28))?&&?dd?!=0)
????????return?true;?
????
????return?false;
}
//15位轉18位中,計算校驗位即最后一位
function?GetVerifyBit(id){
????var?result;
????var?nNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
????nNum=nNum%11;
????switch?(nNum)?{
???????case?0?:
??????????result="1";
??????????break;
???????case?1?:
??????????result="0";
??????????break;
???????case?2?:
??????????result="X";
??????????break;
???????case?3?:
??????????result="9";
??????????break;
???????case?4?:
??????????result="8";
??????????break;
???????case?5?:
??????????result="7";
??????????break;
???????case?6?:
??????????result="6";
??????????break;
???????case?7?:
??????????result="5";
??????????break;
???????case?8?:
??????????result="4";
??????????break;
???????case?9?:
??????????result="3";
??????????break;
???????case?10?:
??????????result="2";
??????????break;
????}
????return?result;
}
//15位轉18位
function?Get18(idCard){
?if?(CheckValue(idCard)){
??var?id?=?idCard;
??var?id18=id;
??if?(id.length==0){
???alert("請輸入15位身份證號!");
???return?false;
??}
??if?(id.length==15){
???if?(id.substring(6,8)>20){
????id18=id.substring(0,6)+"19"+id.substring(6,15);
???}else{
????id18=id.substring(0,6)+"20"+id.substring(6,15);
???}
???id18=id18+GetVerifyBit(id18);
??}
??return?id18;
?}else{
??return?false;
?}
}
轉載于:https://www.cnblogs.com/myparamita/archive/2009/08/20/1550874.html
總結
以上是生活随笔為你收集整理的JavaScript页面校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat源码学习(7)-How To
- 下一篇: 贾君鹏你妈妈喊你回家吃饭