一、手机号码验证
(一)中国电信号段:
133、149、153、173、177、180、181、189、199
(二)中国联通号段
130、131、132、145、155、156、166、175、176、185、186
(三)中国移动号段
134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
(四)其他号段
虚拟运营商
电信:1700、1701、1702
移动:1703、1705、1706
联通:1704、1707、1708、1709、171
卫星通信:1349
/* 方法名:isTel
* 参数:t (需要验证的手机号码)
* 说明:返回结果为true或false
*/
function isTel(t) {
var reg = /^[1](([38][0-9])|([4][579])|([5][0-35-9])|([6]{2})|([7][0135-8])|([9][8|9]))[0-9]{8}$/;
var text = reg.test(t);
return text;
}
二、常用邮箱验证
/*
* 方法名:isMail
* 参数 : t(需要验证的邮箱)
* 结果 : 返回值为验证结果,true/false
*/
function isMail(t) {
var reg = /^[0-9a-zA-Z._-]+@[a-zA-Z0-9]{2,}.((com)|(cn))$/;
var text = reg.test(t);
return text;
};
三、身份证号码验证
18位身份证号码验证规则:
(一)前六位代表地区地址码
(二)七到十四位代表的是出生年月日,格式为yyyy,mm,dd
(三)十五位到十七位为顺序码,奇数代表为男性,偶数代表为女性
(四)最后一位为校验码,可以为0-9或者是x/X;
方法名:isID
参数:需要验证的号码
返回结果:若正确则返回对象形式,
{
age:23 // 年龄
day:"25" // 出生日期
mouth:"03" // 出生月份
sex:"男" // 性别
year:"1995" // 出生年份
},
若不正确,则为undefined 或者 ‘身份证输入不合法’。
function isID(t) {
// 判断闰年
function isY(y) {
var md;
if((y % 4) && !(y % 100) ){
md = 29;
}else{
md = 28;
}
return md;
}
// 根据月份判断天数
function isD(m,y) {
var res1 = /^([0][1|3|5|7|8])|([1][0|2])$/;
var res2 = /^([0][4|6|9])|([1][1])$/;
if(res1.test(m)){
return 31;
}else if(res2.test(m)){
return 30;
}else if(m*1 == 2){
return isY(y);
}
}
var ts = new Date();
var s = ts.getFullYear();
var nm = ts.getMonth()+1 > 9 ? ts.getMonth()+1 : '0' + (ts.getMonth()+1) ;
var nd = ts.getDay() > 9 ? ts.getDay() : '0'+ts.getDay();
var oy = s-200;
var r = /^[0-9]{18}$/;
if(!r.test(t)){ // 判断是否符合18位
return '身份证输入不合法';
}else{
var ID= {};
var ad = t.slice(0,6); // 地区编号
var yy = t.slice(6,10); // 出生年份
var mm = t.slice(10,12); // 月份
var dd = t.slice(12,14); // 日
var sex = t.slice(14,17); // 顺序号,判断性别,奇数为男,偶数为女
var tx = t.slice(17); // 校验号
var reg1 = /^[1-9][0-9]{5}$/; // 验证地区
var reg2 = /^([0][1-9])|([1][0-2])$/; // 验证月份
var reg3 = /^[0-9xX]$/; //最后一为校验码
// 判断出生日期
if(oy <= yy && s>yy){ // 判断年份
if(reg2.test(mm)){ // 判断月份
if(dd > 0 && dd < isD(mm,yy)){ // 判断日期
ID.year = yy;
ID.mouth = mm;
ID.day = dd;
}
}
}else if(s == yy){ // 身份证是否为当前年份
if(mm > 0 && mm <= nm){ // 身份证是否在当前月份之前
if(dd < nd && dd > 0){ // 身份证是否在当前日期之前
ID.year = yy;
ID.mouth = mm;
ID.day = dd;
}
}
}
// 判断性别
if(sex % 2){ //判断性别为男
ID.sex = '男';
}else{
ID.sex = '女';
}
if(reg1.test(ad) && reg3.test(tx)){
ID.age = s - yy;
return ID;
}else{
return '身份证输入不合法';
}
}
};
四、注册密码的一致性验证
此方法用于注册页面中,验证两次输入密码是否正确
/*方法名:isAgreement
*参数:obj(为对象形式,有两个键值对:pw1:第一个密码框,pw2:第二个密码框);
*返回值为布尔值,密码一致为true,否则为false
*/
function isAgreement (obj) {
obj = obj || {};
obj.pw1 = obj.pw1 || '';
obj.pw2 = obj.pw2 || '';
var res = (obj.pw1 == obj.pw2) ;
return res;
}