总结几个有用的正则校验,首先身份证号的校验,电话号码的校验。
校验中国的身份证号
/**
*判断身份证号码格式函数
*公民身份号码是特征组合码,
*排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码
*/
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;
}
分享到:
相关推荐
pb验证身份证号输入的正确性(可以对身份证号码的第18位校验位进行判断) 源码 pb验证身份证号输入的正确性(可以对身份证号码的第18位校验位进行判断) 源码 pb验证身份证号输入的正确性(可以对身份证号码的第18位...
- **身份证号码验证**:通过检查身份证号码的结构、校验码(第18位)以及对应的地区信息,确认其有效性。 - **区域查询**:输入一个身份证号码,快速查询出持证人的出生地信息。 - **统计分析**:对数据库中的数据...
适用于各种证件号码,身份证号码,护照等校验,各地手机号码,固定电话校验,网址以及一些前端类型判断,非空判断等校验。 压缩包内有使用说明书,部分文档如下: ### Client-side usage The library can be loaded...
这份"Android 查询软件源代码(身份证号,号码归属等).zip"压缩包包含了一个Android应用的源码,专门用于查询身份证号码和电话号码的相关信息,如号码归属地。下面将详细解析这个主题中的关键知识点。 首先,我们...
在Android平台上开发一款查询软件,涉及身份证号验证和电话号码归属地查询,是移动应用开发中的常见需求。这款源代码提供了实现这些功能的实例,对于学习Android编程和深入了解通信服务接口的开发者来说,是非常有...
7. **公民身份号码结构**:身份证号码的前6位代表地区代码,接着的8位表示出生日期,接下来的3位是顺序码,最后1位是校验码,用于验证号码的正确性。 8. **法律效力**:身份证号码的变更不影响个人的法律责任和权利...
JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...
邮政编码的编码规则,电话号码的区号和号码分配,车牌号的地区标识和序列号,这些都是数字编码在不同领域的应用。通过了解这些编码的含义和作用,学生们对数字编码有了更全面的认识。 总结来说,《数字编码》这一...
一个有效的18位身份证号应包括地区代码、出生日期、顺序码和校验码。JS脚本会进行一系列复杂的计算和验证,例如通过最后一位校验码来确认整个号码的合法性。 这个资源中的PDF文档很可能会详细介绍这些验证方法的...
- 实现身份证号码验证,可以编写函数检查格式、计算校验码是否正确,并与已知行政区划代码匹配。 3. **手机号码归属地查询**: - 手机号码的归属地是指该号码注册时所在的运营商及省份城市。 - 查询手机号码归属...
`IsTelephone`函数可能用于验证更复杂的电话号码格式,虽然在给出的代码中未完全实现,但通常会检查更多变体,例如区号和分机号。 邮政编码的验证通常也需要正则表达式,中国邮政编码为6位数字,可以编写一个函数如...
首先,身份证验证是常见的身份信息验证,中国的身份证号码为18位,包括6位地区码、8位出生日期码、3位顺序码和1位校验码。可以编写一个函数来验证身份证号码的合法性: ```javascript function validateID(id) { ...
本资源提供的“数据验证JS脚本”主要针对手机号码、固定电话、邮政编码、数字验证、两位小数、邮箱以及身份证号码等多种常见数据格式进行验证,这些都是网页表单设计中常见的验证需求。 1. 手机号码验证:中国的...
身份证号码验证是JS中一个常见的需求,特别是在中国,身份证号可能为15位或18位。15位身份证号由以下部分组成: - `ddddddyymmddxxs`:其中`dddddd`代表地区编码,`yy`代表出生年份,`mm`代表出生月份,`dd`代表...
合作探究部分,教师引导学生关注生活中的其他数字编码,如邮政编码、车牌号等,并决定深入研究身份证号码。通过小组合作,学生探索身份证号码的结构和含义,了解18位身份证号码中每部分的意义,包括地址码、出生日期...
身份证号码是由18位数字组成的,每一个数字或数字组合都代表了特定的信息,包括行政区划代码、出生日期、性别码、顺序码和校验码等。这种编码方式的科学性和简洁性为学生提供了学习数字编码的良好范例。 在教学过程...
身份证验证涉及到更复杂的校验规则,包括地区代码、出生日期、顺序号和校验码等。以下是一个简单的18位身份证号码验证函数: ```javascript function validateIdCard(id) { const idRegex = /(^\d{15}$)|(^\d{18}$...