// JavaScript Document

/* 
用途：检查输入对象的值是否符合E-Mail格式 
输入：str 输入的字符串 
返回：如果通过验证返回true,否则返回false 
*/ 


function f_check_email(obj){     
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
    if(myReg.test( obj.value )) return true;    
    alert("请输入合法的电子邮件地址");   
    return false;    
}

/* 
要求：一、移动电话号码为11或12位，如果为12位,那么第一位为0 
二、11位移动电话号码的第一位和第二位为"13" 
三、12位移动电话号码的第二位和第三位为"13" 
用途：检查输入手机号码是否正确 
输入： 
s：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/ 
function f_check_mobile(obj){      
    var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    alert("请输入正确的手机号码");   
    return false;      
}

function f_check_number(obj)   
{          
    if (/^\d+$/.test(obj.value))   
    {   
       return true;   
    }    
    else    
    {   
       
       return false;   
    }   
}   

/* 
要求：一、电话号码由数字、"("、")"和"-"构成 
二、电话号码为3到8位 
三、如果电话号码中包含有区号，那么区号为三位或四位 
四、区号用"("、")"或"-"和其他部分隔开 
用途：检查输入的电话号码格式是否正确 
输入： 
strPhone：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/ 

function f_check_phone(obj) 
{ 
var regu =/(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/; 
var re = new RegExp(regu); 
if (re.test( obj.value )) { 
return true; 
} 
alert("请输入正确的电话号码"); 
return false; 
} 

/* 判断是否为邮政编码 */ 
function f_check_zipcode(obj) 
{ 
if(!f_check_number(obj)) 
{
alert("邮编输入非法");
return false; 
}
if(obj.value.length!=6) 
{ 
alert("邮政编码长度必须是6位"); 
return false; 
} 
return true; 
} 

/* 
用户ID，可以为数字、字母、下划线的组合， 
第一个字符不能为数字,且总长度不能超过20。 
*/ 
function f_check_userID(obj) 
{ 

var userID = obj.value; 

if(userID.length > 20) 
{ 
alert("注册名长度不能大于20"); 
return false; 
} 
if(!isNaN(userID.charAt(0))) 
{ 
alert("注册名第一个字符不能为数字"); 
return false; 
} 

if(!/^\w{1,20}$/.test(userID)) 
{ 
alert("注册名只能由数字、字母、下划线组合而成"); 
return false; 
} 
return true; 
} 

/* 
功能：验证身份证号码是否有效 
提示信息：未输入或输入身份证号不正确！ 
使用：f_check_IDno(obj) 
返回：bool 
*/ 

function f_check_IDno(obj) 
{ 
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:"国外"}; 

var iSum = 0; 
var info = ""; 
var strIDno = obj.value; 
var idCardLength = strIDno.length; 
if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno)) 
{ 
alert("非法身份证号"); 
return false; 
} 

//在后面的运算中x相当于数字10,所以转换成a 
strIDno = strIDno.replace(/x$/i,"a"); 

if(aCity[parseInt(strIDno.substr(0,2))]==null) 
{ 
alert("非法地区"); 
return false; 
} 

if (idCardLength==18) 
{ 
sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2)); 
var d = new Date(sBirthday.replace(/-/g,"/")) 
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())) 
{ 
alert("非法生日"); 
return false; 
} 

for(var i = 17;i>=0;i --) 
iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11); 

if(iSum%11!=1) 
{ 
alert("非法身份证号"); 
return false; 
} 
} 
else if (idCardLength==15) 
{ 
sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2)); 
var d = new Date(sBirthday.replace(/-/g,"/")) 
var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate(); 
if(sBirthday != dd) 
{ 
alert("非法生日"); 
return false; 
} 
} 
return true; 
} 




