JavaScript正则表达式验证身份证号码是否合法(两种方法)分析

合集下载

js身份证正则表达式

js身份证正则表达式

js身份证正则表达式JS身份证正则表达式是程序开发领域中一种非常重要的技术工具,本文讨论的是使用JS正则表达式来验证中国的身份证号码。

身份证号码是一种全球通用的身份认证凭证,它被广泛应用于各种场合,例如用于报名参加考试,办理选民证明,办理社会保险等。

本文主要介绍了JS身份证正则表达式在验证身份证号码时的应用,以及如何根据身份证号码提取性别和出生日期等信息。

什么是JS身份证正则表达式?JS正则表达式是一种特殊的文本模式,可以用来检查字符串中的文本结构,匹配模式可以是单个字符、单词或者句子等。

正则表达式是一种强大的字符串处理工具,在编写程序时可以大大简化字符串处理任务。

可以用来匹配字符串中预定义的模式,也可以用来替换或删除文本中的特定字符。

JS中的正则表达式可以用来验证身份证号码的合法性,但要注意的是当地的身份证号码的格式有可能会有所差别,因此必须根据不同的地区形式来构建正则表达式,以确保正确性。

根据中华人民共和国公民身份号码的构成,全国的有效身份证号码格式为1-2位省或直辖市代码(市/州代码+县/区代码)+ 6位数出生日期+3位顺序码+1位校验码,例如:,其中,440881表示广东省深圳市,19830109表示出生日期,4232表示顺序码,顺序码可以为偶数或奇数,最后一位是校验码,根据公式校验码可以计算出。

下面的正则表达式可用于验证中国的身份证号码:`^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$|^[1-9]d{ 5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$`上述正则表达式可以用来验证15位和18位身份证号码的合法性。

此正则表达式可以使用JS的match方法来验证输入的身份证号码是否符合指定格式,如果是,则返回true,否则返回false:if(id.match(/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3} $|^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3} ([0-9]|X)$/))另外,还可以使用正则表达式来从身份证号码中提取出性别和出生日期信息。

java证件号正则

java证件号正则

java证件号正则在Java中,验证证件号的正则表达式可以根据不同的证件类型进行匹配。

以下是一个通用的正则表达式,用于验证中国大陆居民的身份证号:```javaString regex = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2|3|4|5|6|7|8|9])\\d{3}) $";```这个正则表达式匹配的是18位身份证号,其中包括:1. 前6位:地区代码2. 接下来4位:出生年份3. 然后2位:出生月份4. 接着2位:出生日期5. 最后4位:顺序码,其中最后一位为校验码要使用这个正则表达式验证身份证号,你可以使用Java的`Pattern`和`Matcher`类:```javaimport java.util.regex.Matcher;import java.util.regex.Pattern;public class IDCardValidator {public static void main(String[] args) {StringidCard=*******************";String regex = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2|3|4|5|6|7|8|9])\\d{3}) $";Pattern pattern = pile(regex);Matcher matcher = pattern.matcher(idCard);if (matcher.matches()) {System.out.println("身份证号有效");} else {System.out.println("身份证号无效");}}}请注意,这个正则表达式仅适用于中国大陆的身份证号。

java对身份证验证及正则表达式解析

java对身份证验证及正则表达式解析

java对⾝份证验证及正则表达式解析原⽂地址:/zhongshengzhen/java对⾝份证验证及正则表达式解析package service;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.regex.Pattern;import org.junit.Test;public class TestRegex {public static boolean isChineseName(String realname){return Pattern.matches("[\u4e00-\u9fa5|·]{2,15}",realname);}public static boolean isCardId(String cardid){return Pattern.matches("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([\\d|x|X]{1})$", cardid);}public static String[] randomArray(int length){int index = 0;String temp = ",";for(int ii=0;ii<1000;ii++){for(int i=0;i<length;i++){index = (int) (Math.random()*10);temp += ( index + "");}temp +=",";}return temp.split(",");}//⾝份证前1位每位加权因⼦private static int[] power = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};//⾝份证第18位校检码private static String[] refNumber ={"1", "0", "X", "9", "8", "7", "6", "5", "4", "3"};//省(直辖市)代码表private String provinceCode[] = { "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" };/*** 检查⾝份证的省份信息是否正确(使⽤与18/15位⾝份证)* @param provinceid* @return*/public boolean checkProvinceId(String provinceid){for (String id : provinceCode) {if (id.equals(provinceid)) {return true;}}return false;}/*** 校验⾝份证第18位是否正确(只适合18位⾝份证)* @param cardId* @return*/public static boolean checkCardIdLastNum(String cardId){if(cardId.length() != 18){return false;}char[] tmp = cardId.toCharArray();int[] cardidArray = new int[tmp.length-1];int i=0;for(i=0;i<tmp.length-1;i++){cardidArray[i] = Integer.parseInt(tmp[i]+"");}String checkCode = sumPower(cardidArray);String lastNum = tmp[tmp.length-1] + "";if(lastNum.equals("x")){lastNum = lastNum.toUpperCase();}if(!checkCode.equals(lastNum)){return false;}return true;}/*** 计算⾝份证的第⼗⼋位校验码* @param cardidArray* @return*/public static String sumPower(int[] cardidArray){int result = 0;for(int i=0;i<power.length;i++){result += power[i] * cardidArray[i];}return refNumber[(result%11)];}/*** 判断⽇期是否有效* @param inDate* @return*/public boolean isValidDate(String inDate) {if (inDate == null){return false;}SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");if (inDate.trim().length() != dateFormat.toPattern().length()){return false;}dateFormat.setLenient(false);//严格的⽇期匹配try {dateFormat.parse(inDate.trim());} catch (ParseException e) {return false;}return true;}//@Testpublic void testName(){String[] array = {"钟·","在哪"};for(int i=0;i<array.length;i++){System.out.println(array[i]+":"+isChineseName(array[i]));}}////@Testpublic void testCardId(){String[] array = randomArray(18);int index = 0,sum =0;for(int i=0;i<array.length;i++){sum += 1;if(isCardId(array[i])){index += 1;}System.out.println(array[i]+":"+isCardId(array[i]));}double ret = index/sum;System.out.println(index+","+sum+","+ret);}//@Testpublic void testArray(){String[] array = randomArray(15);for(int i=0;i<array.length;i++){System.out.println(array[i]);}}//@Testpublic void testLastNum(){String[] cardId = {"440982199563272359","430102************"};for(int i=0;i<cardId.length;i++){System.out.println(cardId[i]+":"+checkCardIdLastNum(cardId[i]));}}//@Testpublic void testProcince(){String[] cardId = {"440982199563272359","430102************"};for(int i=0;i<cardId.length;i++){System.out.println(cardId[i].substring(0,2)+":"+checkProvinceId(cardId[i].substring(0,2))); }}@Testpublic void testDate(){//String[] cardId = {"440982************","430102************"};String cardId[] = {"445102************","131100************","510421************","340823************","340703************","440982************","130203************","321101************","340501************","330424************","610402************","230826************","350305************","450881************","220282************","341723************","451024************","330727************","411626************","230605************","210681************","511821************","622923************",};for(int i=0;i<cardId.length;i++){System.out.println(cardId[i].substring(6,14)+":"+isValidDate(cardId[i].substring(6,14))); }}}。

js几种常用的数据校验方法

js几种常用的数据校验方法

js几种常用的数据校验方法在前端开发中,数据校验是非常重要的一环。

通过对用户输入的数据进行校验,可以有效地防止错误数据的提交,提高系统的安全性和稳定性。

下面将介绍几种常用的js数据校验方法。

1. 正则表达式校验正则表达式是一种强大的文本匹配工具,可以用来对字符串进行复杂的校验。

在js中,可以使用RegExp对象来创建正则表达式,并使用test()方法来进行匹配校验。

例如,可以使用正则表达式来校验手机号码的格式是否正确:```javascriptfunction validatePhone(phone) {var reg = /^1[3456789]\d{9}$/;return reg.test(phone);}```2. 内置校验方法在HTML5中,提供了一些内置的校验方法,可以直接在表单元素上使用。

例如,可以使用required属性来校验必填项,使用type属性来校验输入的数据类型。

例如,可以使用type="email"来校验邮箱地址的格式是否正确:```html<input type="email" required>```3. 自定义校验方法除了使用正则表达式和内置校验方法外,还可以自定义校验方法来满足特定的需求。

可以通过编写自定义函数来实现校验逻辑,并在需要校验的地方调用该函数。

例如,可以自定义一个校验密码强度的方法:```javascriptfunction validatePassword(password) {// 校验密码强度的逻辑// ...return true; // 返回校验结果}```4. 第三方库校验除了自己编写校验方法外,还可以使用一些第三方库来简化数据校验的过程。

例如,jQuery Validation是一个常用的表单校验插件,可以通过简单的配置来实现各种校验需求。

使用该插件可以方便地对表单进行校验,并提供了丰富的错误提示功能。

JavaScript判断输入框输入的名字是否合法(支持分隔符),以及身份证号码是否合法

JavaScript判断输入框输入的名字是否合法(支持分隔符),以及身份证号码是否合法

JavaScript判断输⼊框输⼊的名字是否合法(⽀持分隔符),以及⾝份证号码是否合法//在进⾏实名认证的时候,将⽤户所填信息上传⾄实名认证接⼝之前判断⽤户的输⼊是否合法后再进⾏认证,可以有效的节约实名认证的经济消耗//判断输⼊的名字是否合法(⽀持少数民族的分隔符[ · ])// [ · ]的Unicode为u00b7function isChineseName(name){ //把名字中的分隔符(·)去掉,再判断是否全为中⽂,且长度在范围为2-15var nameWithoutDot = name.replace(/\u00b7/g, '');console.log(nameWithoutDot);if(/^[\u4e00-\u9fa5]{2,15}$/i.test(nameWithoutDot)){ return true;alert("合法名字");}else{ return false;alert("不合法名字");}}//判断⾝份证号码是否输⼊合法function isLeagalIdNum(id){ //前两位数字的合法范围var legalProvinceId = [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];var isLegalProvinceId = legalProvinceId.includes(parseInt(id.substring(0, 2))); //前两位省份码是否合法 //3,4位表⽰城市代码,最⼤为70var isLegalCityId = (parseInt(id.substring(2, 4)) <= 70 && parseInt(id.substring(2, 4)) >= 1); // 3、4位城市码是否合法//第5、6位代表城市的区,范围01 ~ 99;判断是否⼤于0 就好var islegalAreaId = (parseInt(id.substring(4, 6)) > 0)// 第7-10位出⽣年份是否合法 (设置范围为 1900年⾄现在年份,120岁的应该不会玩⼿机吧 --)var isLegalBirthYear = (parseInt(id.substring(6, 10)) <= new Date().getFullYear() && parseInt(id.substring(6, 10)) >= 1900);// 判断11、12位⽉份是否合法var isLegalBirthMonth = (parseInt(id.substring(10, 12)) <= 12 && parseInt(id.substring(10, 12)) >= 1);if (parseInt(id.substring(6, 10)) == new Date().getFullYear() && parseInt(id.substring(10, 12)) > (new Date().getMonth() + 1)) //判断所填⽉份是否⼤于当前⽉份{isLegalBirthMonth = false;}// 判断13、14位⽇期是否合法var bigMonth = [1, 3, 4, 7, 8, 10, 12]; //分⼤⽉⼩⽉进⾏判断var isLegalBirthDay = false;if (bigMonth.includes(parseInt(id.substring(10, 12)))) {isLegalBirthDay = (parseInt(id.substring(12, 14)) >= 1 && parseInt(id.substring(12, 14)) <= 31)} else {if (parseInt(id.substring(10, 12)) == 2) { //⼆⽉最多29天,这⾥就不判断闰年平年了isLegalBirthDay = (parseInt(id.substring(12, 14)) >= 1 && parseInt(id.substring(12, 14)) <= 29);} else {isLegalBirthDay = (parseInt(id.substring(12, 14)) >= 1 && parseInt(id.substring(12, 14)) <= 30);}}if (parseInt(id.substring(6, 10)) == new Date().getFullYear() && parseInt(id.substring(6, 10)) == new Date().getMonth() && parseInt(id.substring(10, 12)) > new Date().getDate()) //判断所填⽉份是否⼤于当前⽉份isLegalBirthDay = false;return isLegalProvinceId && isLegalCityId && islegalAreaId && isLegalBirthYear && isLegalBirthMonth && isLegalBirthDay;}。

java 证件号码正则校验规则

java 证件号码正则校验规则

java 证件号码正则校验规则摘要:一、Java中正则表达式的使用二、身份证号码正则校验规则1.整体结构2.校验位计算3.校验位规则三、护照号码正则校验规则1.整体结构2.护照号码格式四、港澳台通行证号码正则校验规则1.整体结构2.港澳台通行证号码格式五、实用示例正文:一、Java中正则表达式的使用在Java中,我们可以使用`Pattern`和`Matcher`类来进行正则表达式的匹配和校验。

通过引入`java.util.regex`包,我们可以方便地使用正则表达式对各种字符串进行校验。

二、身份证号码正则校验规则1.整体结构身份证号码由18位数字组成,包括地区代码、出生日期、顺序码和校验码。

2.校验位计算校验位采用加权因子计算,加权因子分别为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。

3.校验位规则校验位数字根据前17位数字的权重值计算得出,权重值依次为:1、3、7、9、10、5、8、4、2、6、1、3、7、9、10、5、8、4、2。

计算方法为:将前17位数字分别乘以对应的权重值,然后求和,最后除以11,取余数,对应校验码。

三、护照号码正则校验规则1.整体结构护照号码由9位数字组成,包括国家代码、地区代码、顺序码和校验码。

2.护照号码格式护照号码的国家代码和地区代码均为2位数字,顺序码为3位数字,校验码为1位数字。

四、港澳台通行证号码正则校验规则1.整体结构港澳台通行证号码由9位数字组成,包括地区代码、顺序码和校验码。

2.港澳台通行证号码格式地区代码为1位字母,顺序码为4位数字,校验码为1位数字。

element 正则验证

element 正则验证

element 正则验证
Element是一个基于Vue.js的UI框架,常用于构建 Web 应用程序。

在使用 Element 进行表单验证时,我们经常需要使用正则表达式来验证表单输入的格式是否符合要求。

本文将介绍 Element 中常用的正则表达式验证方法。

1. 判断是否为金额格式
在表单中,经常需要验证输入的金额是否符合要求。

在 Element 中,可以使用如下的正则表达式进行验证:
```javascript
/^[0-9]+(.[0-9]{1,2})?$/
```
这个正则表达式可以验证输入字符串是否为数字,并且最多保留两位小数。

2. 判断是否为手机号码格式
在验证表单中的手机号码时,可以使用如下的正则表达式:
```javascript
/^1[0-9]{10}$/
```
这个正则表达式可以验证是否为以 1 开头的 11 位数字,符合手机号码的格式。

3. 判断是否为邮箱格式
在验证表单中的邮箱地址时,可以使用如下的正则表达式:
```javascript
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ ```
这个正则表达式可以验证是否为合法的邮箱地址格式。

4. 判断是否为身份证号码格式
在验证表单中的身份证号码时,可以使用如下的正则表达式: ```javascript
/^(d{15}$|^d{18}$|^d{17}(d|X|x))$/
```
这个正则表达式可以验证是否为合法的身份证号码格式。

以上就是 Element 中常用的几种正则表达式验证方法,读者可以根据需要进行选择和修改。

正则表达式-身份证号码验证

正则表达式-身份证号码验证

正则表达式-⾝份证号码验证⾝份证号码验证,包含两代⾝份证,第⼀代和第⼆代⾝份证第⼀代⾝份证15位,其编码规则顺序从左⾄右依次为6位数字地址码,6位数字出⽣年份后两位及⽇期,3位数字顺序码。

格式:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$正则表达式分解如下:[1-9]\d{5}:前六位地区,⾮0开头\d{2} :出⽣年份后两位00-99((0[1-9])|(10|11|12)):⽉份,01-12⽉(([0-2][1-9])|10|20|30|31):⽇期,01-31天\d{3}:顺序码三位,没有校验码第⼆代⾝份证18位,其编码规则顺序从左⾄右依次为6位数字地址码,8位数字出⽣年份⽇期码,3位数字顺序码,1位数字校验码(X有时会出现):格式: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$正则表达式分解如下:[1-9]\d{5} :前六位地区,⾮0开头(18|19|([23]\d))\d{2}:出⾝年份,覆盖范围为 1800-3999 年((0[1-9])|(10|11|12)):⽉份,01-12⽉(([0-2][1-9])|10|20|30|31):⽇期,01-31天\d{3}[0-9Xx]:顺序码三位 + ⼀位校验码程序:private void BtnOK_Click(object sender, RoutedEventArgs e){if (string.IsNullOrEmpty(tbxName.Text)){MessageBox.Show($"姓名不可为空,请重新输⼊!");tbxName.Focus();return;}Name = tbxName.Text;Regex re = new Regex(@"(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)|(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)");if (re.IsMatch(tbxIDNumber.Text)){IDNumber = tbxIDNumber.Text;MessageBox.Show($"姓名:{Name},⾝份证号码:{IDNumber},符合规则");Close();}else{MessageBox.Show($"⾝份证号码格式不正确,请输⼊15或者18位的⾝份证号码。

JavaScript正则表达式验证身份证号码是否合法(两种方法)讲解

JavaScript正则表达式验证身份证号码是否合法(两种方法)讲解

JavaScript正则表达式验证身份证号码是否合法(两种方法)正则表达式(regular expression)是一个描述字符模式的对象。

下面通过本篇文章给大家介绍js正则表达式验证身份证号码是否合法,需要的朋友可以参考下本篇文章第一种方法:在用户注册页面有些需求要求的比较严格,需要对身份证js验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客。

下面就此实现方法给大家讲解下。

很多时候我们都是通过一组正则表达式来判断用户输入的身份证是否合法,那在用正则表达式判断之前,你对身份证号的组成有多少了解呢?下面来说说一个身份证号里面包含了多少的信息:1、号码的结构公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

2、地址码(前六位数)表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按gb/T2260的规定执行。

3、出生日期码(第七位至十四位)表示编码对象出生的年、月、日,按gb/T7408的规定执行,年、月、日代码之间不用分隔符。

4、顺序码(第十五位至十七位)表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

5、校验码(第十八位数)作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。

X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

在知道身份证号结构组成各部分的意思后,我们开始进入主题:1、定义一个全国地区的对象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:"国外"}2、正则表达式判断第二种方法:6768697071727374757677787980818283848586位),皆为数字if(len == '15'){var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;var arr_data = obj.match(re_fifteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date('19'+year+'/'+month+'/'+day);return verifyBirthday('19'+year,month,day,birthday);}//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为Xif(len == '18'){var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;var arr_data = obj.match(re_eighteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date(year+'/'+month+'/'+day);return verifyBirthday(year,month,day,birthday);}return false;。

身份证号码验证正则表达式及用法(包括:位数、规则等)

身份证号码验证正则表达式及用法(包括:位数、规则等)

⾝份证号码验证正则表达式及⽤法(包括:位数、规则等)//sfz.js页⾯function CheckIDCard(StrNumber){//判断⾝份证号码格式函数//公民⾝份号码是特征组合码,//排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码//⾝份证号码长度判断if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18){return {"code":201,"errormsg":"填写的⾝份证号码长度不正确,请重新填写!"};}//⾝份证号码最后⼀位可能是超过100岁⽼年⼈的X.X也可以代表是阿拉伯数字10的意思//所以排除掉最后⼀位数字进⾏数字格式测试,最后⼀位数字有最后⼀位数字的算法var Ai;if(StrNumber.length==18){Ai = StrNumber.substring(0,17);}else{Ai =StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9);}//调⽤数字判断函数IsNumeric()if(IsNumeric(Ai)==false){return {"code":201,"errormsg":"⾝份证号码数字字符串不正确,请重新填写!"};}var strYear,strMonth,strDay,strBirthDay;strYear = parseInt(Ai.substr(6,4));strMonth = parseInt(Ai.substr(10,2)) ;strDay = parseInt(Ai.substr(12,2));//调⽤⽇期判断函数IsValidDate()if (IsValidDate(strYear,strMonth,strDay)==false){return {"code":201,"errormsg":"⾝份证号码验证失败!"};}var arrVerifyCode = new Array("1","0","x","9","8","7","6","5","4","3","2");var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);var k,TotalmulAiWi=0;for (k=0; k<17;k++){TotalmulAiWi = TotalmulAiWi + parseInt(Ai.substr(k,1)) * Wi[k];}//alert("⾝份证号码最后⼀位的识别码是:"+TotalmulAiWi);var modValue =TotalmulAiWi % 11 ;var strVerifyCode = arrVerifyCode[modValue];Ai = Ai+strVerifyCode;//alert("⾝份证号码"+StrNumber+"与正确的号码"+Ai+"⼀致!");if((StrNumber.length==18)&&(StrNumber!=Ai)){return {"code":201,"errormsg":"⾝份证号码验证失败!"};}return {"code":200,"msg":"OK"};}//数字判断函数IsNumeric()//数字判断函数IsNumeric()function IsNumeric(oNum){return /^\d+$/.test(oNum)}function IsValidDate(iY, iM, iD) {if (iY>2200 || iY<1900 || !IsNumeric(iY)){return false;}if (iM>12 || iM<=0 || !IsNumeric(iM)){return false;}if (iD>31 || iD<=0 || !IsNumeric(iD)){return false;}return true;}⽤法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><!--引⽤⾝份证验证的正则表达式--><script type="text/javascript" src="../js/sfz.js"></script><title>⽆标题⽂档</title></head><body><input style="width:240px; margin-left:21px;" id="num" onblur="num0()" class="inp fl" type="text"/><div class="fl" id="num-a"></div></body></html><script type="text/javascript">function num0(){var mail = document.getElementById("num").value;var ckresult=CheckIDCard(mail);if(ckresult.code!=200){changdu = "<img style='margin-left:15px; margin-top:10px; float:left' src='../images/叉号.png' /><span style='color:#FF0004; font-size:14px; margin-top:10px; float:left; margin-left:10px;'>"+ckresult.errormsg+"</span> $("#num-a").html(changdu );document.getElementsByClassName("btn")[0].disabled=true;}else{changdu = "<img style='margin-left:15px; margin-top:10px; float:left' src='../images/对号.png' /><span style='color:#FF0004; font-size:14px; margin-top:10px; float:left; margin-left:10px;'></span>"; $("#num-a").html(changdu );}}</script>。

js validate常用验证方法

js validate常用验证方法

在JavaScript中,有几种常见的验证方法,包括:
1. 空值验证:使用`== null`或`=== null`来检查变量是否为空。

2. 邮箱格式验证:使用正则表达式进行匹配,如`/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/`。

3. 密码验证:检查密码是否包含至少一个大写字母、一个小写字母和一个数字,以及是否达到一定的长度。

4. 身份证号码验证:使用正则表达式进行匹配,如`/^\d{15}$|^\d{18}$|^\d{17}(\d|X|x)$/`。

5. 手机号验证:使用正则表达式进行匹配,如`/^1[3-9]\d{9}$/`。

6. 唯一性验证:检查一个值是否已经存在于数据库或其他数据源中。

7. 数据类型验证:使用`typeof`运算符来检查变量的类型。

8. 正则表达式验证:使用正则表达式进行匹配,适用于各种验证场景。

9. 自定义验证:根据具体需求编写自定义验证函数。

这些方法可以单独或组合使用,以实现更复杂的验证需求。

js身份证校验正则

js身份证校验正则

js身份证校验正则JavaScript身份证校验正则:1、基本概念:身份证校验正则是指在使用JavaScript语言中,通过构建正则表达式的匹配规则来校验身份证号的合法性。

通过构建出正则表达式,可以对填写的 long string 或者number 有效地、高效地进行校验。

2、基本校验步骤:(1)长度验证:身份证号长度为15/18位;(2)检查省份格式:身份证号必须符合当前有效的省市编码表;(3)校验校检码:18位的身份证号码末位的校检码为安全码,校检位的计算方法是基于号码前17位的号码加权求和,然后进行11对应的校检码计算,最后与身份证的末尾一位相互照应,以及检验输入号码的真实性。

3、具体正则表达式:(1)身份证15位:^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$(2)身份证18位:^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$4、校验示例:(1)如果载入的是一个字符串:if (str.match(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/))//string is a valid IDelse//string is a invalid ID5、总结:JavaScript 身份证校验正则是网络开发中常用的一种解决方案,通过构建出正则表达式以及校检码的计算,可以对提交的身份证号码进行长度和省份格式的校验,以及基于算法的真实性检测,从而有效地确保身份证号正确性,实现安全管理及减少冗余数据的负担。

JS严格校验身份证号-(严格校验每一位身份号码)

JS严格校验身份证号-(严格校验每一位身份号码)

JS严格校验⾝份证号-(严格校验每⼀位⾝份号码)html校验⽰例<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>JS严格校验⾝份证号</title></head><body><div align="center"></br></br></br></br></br></br></br></br><div class="form-inline"><input type="text"class="form-control" style="width: 200px;" id="idCard" placeholder="输⼊⾝份证号"><button class="btn btn-default" onclick="check();">校验</button></div></div><footer class="footer"><div class="container"><p class="text-muted" align="center">Author:<a href="" target="_blank">麦⽥技术博客</a></p></div></footer></body><script type="text/javascript">function check(){var idCard = document.getElementById("idCard").value;var flag =IdCardValidate(idCard);if(flag){alert("正确!");}else{alert("您输⼊的⾝份证号格式不正确 ");}}var Wi =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];// 加权因⼦var ValideCode =[1,0,10,9,8,7,6,5,4,3,2];// ⾝份证验证位值.10代表Xfunction IdCardValidate(idCard){idCard =trim(idCard.replace(/ /g,""));//去掉字符串头尾空格if(idCard.length ==15){return isValidityBrithBy15IdCard(idCard);//进⾏15位⾝份证的验证}else if(idCard.length ==18){var a_idCard = idCard.split("");// 得到⾝份证数组if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){//进⾏18位⾝份证的基本验证和第18位的验证return true;}else{return false;}}else{return false;}}/*** 判断⾝份证号码为18位时最后的验证位是否正确* @param a_idCard ⾝份证号码数组* @return*/function isTrueValidateCodeBy18IdCard(a_idCard){function isTrueValidateCodeBy18IdCard(a_idCard){var sum =0;// 声明加权求和变量if(a_idCard[17].toLowerCase()=='x'){a_idCard[17]=10;// 将最后位为x的验证码替换为10⽅便后续操作}for(var i =0; i <17; i++){sum += Wi[i]* a_idCard[i];// 加权求和}valCodePosition = sum %11;// 得到验证码所位置if(a_idCard[17]== ValideCode[valCodePosition]){return true;}else{return false;}}/*** 验证18位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard 18位书⾝份证字符串* @return*/function isValidityBrithBy18IdCard(idCard18){var year = idCard18.substring(6,10);var month = idCard18.substring(10,12);var day = idCard18.substring(12,14);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day)); // 这⾥⽤getFullYear()获取年份,避免千年⾍问题if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}/*** 验证15位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard15 15位书⾝份证字符串* @return*/function isValidityBrithBy15IdCard(idCard15){var year = idCard15.substring(6,8);var month = idCard15.substring(8,10);var day = idCard15.substring(10,12);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day)); // 对于⽼⾝份证中的你年龄则不需考虑千年⾍问题⽽使⽤getYear()⽅法if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}//去掉字符串头尾空格function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"");}</script></html>js校验核⼼代码引⼊只需要调⽤这个⽅法即可IdCardValidate(“你要验证的⾝份证”); function check(){var idCard = document.getElementById("idCard").value;var flag =IdCardValidate(idCard);var flag =IdCardValidate(idCard);if(flag){alert("正确!");}else{alert("您输⼊的⾝份证号格式不正确 ");}}var Wi =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];// 加权因⼦var ValideCode =[1,0,10,9,8,7,6,5,4,3,2];// ⾝份证验证位值.10代表Xfunction IdCardValidate(idCard){idCard =trim(idCard.replace(/ /g,""));//去掉字符串头尾空格if(idCard.length ==15){return isValidityBrithBy15IdCard(idCard);//进⾏15位⾝份证的验证}else if(idCard.length ==18){var a_idCard = idCard.split("");// 得到⾝份证数组if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){//进⾏18位⾝份证的基本验证和第18位的验证return true;}else{return false;}}else{return false;}}/*** 判断⾝份证号码为18位时最后的验证位是否正确* @param a_idCard ⾝份证号码数组* @return*/function isTrueValidateCodeBy18IdCard(a_idCard){var sum =0;// 声明加权求和变量if(a_idCard[17].toLowerCase()=='x'){a_idCard[17]=10;// 将最后位为x的验证码替换为10⽅便后续操作}for(var i =0; i <17; i++){sum += Wi[i]* a_idCard[i];// 加权求和}valCodePosition = sum %11;// 得到验证码所位置if(a_idCard[17]== ValideCode[valCodePosition]){return true;}else{return false;}}/*** 验证18位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard 18位书⾝份证字符串* @return*/function isValidityBrithBy18IdCard(idCard18){var year = idCard18.substring(6,10);var month = idCard18.substring(10,12);var day = idCard18.substring(12,14);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day));// 这⾥⽤getFullYear()获取年份,避免千年⾍问题if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}/*** 验证15位数⾝份证号码中的⽣⽇是否是有效⽣⽇* @param idCard15 15位书⾝份证字符串* @return* @return*/function isValidityBrithBy15IdCard(idCard15){var year = idCard15.substring(6,8);var month = idCard15.substring(8,10);var day = idCard15.substring(10,12);var temp_date =new Date(year,parseFloat(month)-1,parseFloat(day));// 对于⽼⾝份证中的你年龄则不需考虑千年⾍问题⽽使⽤getYear()⽅法if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){return false;}else{return true;}}//去掉字符串头尾空格function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"");}。

JS正则表达式完美实现身份证校验功能

JS正则表达式完美实现身份证校验功能

JS正则表达式完美实现⾝份证校验功能注意:1、只针对18为⾝份证号码进⾏校验,现在15位的应该很少了,2、不区分xX⼤⼩写,3、出⽣年份1900-2099,每⽉的天数也进⾏相关验证(考虑的闰⽉的情况),4、校验规则详见,这个写的⽐较详细和清楚,相信看过后都可以⾃⼰写⼀个,5、⽬前还⽆法对区位码就进⾏精确校验,本⼈搜集整理了区位码,提供了⼀个查询api,仅攻参考。

有不精确的地⽅可以留⾔指出6、这个验证函数⽬前在项⽬中实际运⾏,暂未发现问题,有问题会进⾏更新。

以上直接上代码:function testid(id) {// 1 "验证通过!", 0 //校验不通过 // id为⾝份证号码var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/; //号码规则校验if(!format.test(id)){return {'status':0,'msg':'⾝份证号码不合规'};}//区位码校验//出⽣年⽉⽇校验前正则限制起始年份为1900;var year = id.substr(6,4),//⾝份证年month = id.substr(10,2),//⾝份证⽉date = id.substr(12,2),//⾝份证⽇time = Date.parse(month+'-'+date+'-'+year),//⾝份证⽇期时间戳datenow_time = Date.parse(new Date()),//当前时间戳dates = (new Date(year,month,0)).getDate();//⾝份证当⽉天数if(time>now_time||date>dates){return {'status':0,'msg':'出⽣⽇期不合规'}}//校验码判断var c = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); //系数var b = new Array('1','0','X','9','8','7','6','5','4','3','2'); //校验码对照表var id_array = id.split("");var sum = 0;for(var k=0;k<17;k++){sum+=parseInt(id_array[k])*parseInt(c[k]);}if(id_array[17].toUpperCase() != b[sum%11].toUpperCase()){return {'status':0,'msg':'⾝份证校验码不合规'}}return {'status':1,'msg':'校验通过'}}。

JavaScript常用表单验证正则表达式(身份证、电话号码、邮编、日期、IP等)

JavaScript常用表单验证正则表达式(身份证、电话号码、邮编、日期、IP等)

JavaScript常⽤表单验证正则表达式(⾝份证、电话号码、邮编、⽇期、IP等)⾝份证正则表达式//⾝份证正则表达式(15位)isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//⾝份证正则表达式(18位)isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;地区、性别和⾝份证进⾏判断的正则表达式:<script>varaCity={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:”国外”}function cidInfo(sId){var iSum=0var info=”"if(!/^\d{17}(\d|x)$/i.test(sId))return false;sId=sId.replace(/x$/i,”a”);if(aCity[parseInt(sId.substr(0,2))]==null)return “Error:⾮法地区”;sBirthday=sId.substr(6,4)+”-”+Number(sId.substr(10,2))+”-”+Number(sId.substr(12,2));var d=new Date(sBirthday.replace(/-/g,”/”))if(sBirthday!=(d.getFullYear()+”-”+ (d.getMonth()+1) + “-” + d.getDate()))return “Error:⾮法⽣⽇”;for(var i = 17;i>=0;i –) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 – i),11)if(iSum%11!=1)return “Error:⾮法证号”;return aCity[parseInt(sId.substr(0,2))]+”,”+sBirthday+”,”+(sId.substr(16,1)%2?”男”:”⼥”)}</script>————-正则表达式全集中国电话号码验证匹配形式如:0511-******* 或者021-******** 或者 021-********-555 或者 (0511)4405222正则表达式 “((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*”中国邮政编码验证匹配形式如:215421正则表达式 “d{6}”电⼦邮件验证匹配形式如:justali@正则表达式 “w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*”⾝份证验证匹配形式如:15位或者18位⾝份证正则表达式 “d{18}|d{15}”常⽤数字验证正则表达式“d{n}” n为规定长度“d{n,m}” n到m的长度范围⾮法字符验证匹配⾮法字符如:< > & / ‘ |正则表达式 [^<>&/|'\]+⽇期验证匹配形式如:20030718,030718范围:1900–2099正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}正则表达式是⼀个好东西,但是⼀般情况下,我们需要验证的内容少之⼜少。

JS使用正则表达式验证身份证号码

JS使用正则表达式验证身份证号码

JS使⽤正则表达式验证⾝份证号码废话不多说了,先给⼤家看⼀段代码吧function isCardNo(card){// ⾝份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后⼀位是校验位,可能为数字或字符Xvar reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;if(reg.test(card) === false){alert("⾝份证输⼊不合法");return false;}} 最近的项⽬中⽤的需要调⽤实名认证的接⼝,实名认证接⼝价格相⽐短信⽽⾔⾼了不是⼏分钱,所以说调⽤实名认证的条件就要严格把关,因此⽤到js验证真实姓名与js验证⾝份证号。

进⼊正题 js验证真实姓名,是⽤的unicode字符的来进⾏匹配,⽽中国⼈的姓名长度⼀般都是2-4,所以重复匹配{2,4}次1.js验证真实姓名var regName =/^[\u4e00-\u9fa5]{2,4}$/;if(!regName.test(name)){alert(‘真实姓名填写有误‘);return false;}js验证⾝份证号,中国的⾝份证号,⼀代⾝份证号是15位的数字,⼆代⾝份证都是18位的,最后⼀位校验位除了可能是数字还可能是‘X‘或‘x‘,所以有四种可能性:a.15位数字 b.18位数字 c.17位数字,第⼗⼋位是‘X‘ d.17位数字,第⼗⼋位是‘x‘2.js验证⾝份证号var regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;if(!regIdNo.test(idNo)){alert(‘⾝份证号填写有误‘);return false;}以上所述是⼩编给⼤家介绍的JS使⽤正则表达式验证⾝份证号码,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

在此也⾮常感谢⼤家对⽹站的⽀持!。

使用javascript实现身份证校验与信息提取

使用javascript实现身份证校验与信息提取

使⽤javascript实现⾝份证校验与信息提取我们先了解⼀下⾝份证是怎么校验的:将前⾯的⾝份证号码17位数分别乘以不同的系数,将这17位数字和系数相乘的结果相加,然后除以11求余,根据最后的余数对应校验码,判断⾝份证是否符合要求。

现在我们开始写代码<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><p>⾝份证号:<input type='text' id='idCard'/></p><P>出⽣⽇期:<input type='text' readonly id='age'/></P><P>性 别:<input type='radio' disabled name='sex' id='man'>男<input type='radio' name='sex' disabled id='woman'>⼥</P><P>籍 贯:<input type='text' readonly id='dess'></P><button type='button' id='btnSub'>确定</button><script src='js/jquery-1.11.3.min.js'></script><script>$("#btnSub").click(function(){var idCard = $("#idCard").val();//根据⾝份证不同的位置,截取相对应的数据var sex = idCard.substring(16,17);var num = idCard.substring(17,18);var year = idCard.substring(6,10);var month = idCard.substring(10,12);var day = idCard.substring(12,14);var age = year+"-"+month+"-"+day;var date = new Date(age);var sum = 0;var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,0];var arr2 = [1,0,'X',9,8,7,6,5,4,3,2];//判断⾝份证是否为空,或者长度有没有达到要求(这⾥规定⾝份证18位)if(!(idCard && /^[\d]{18}$/.test(idCard))){alert("⾝份证输⼊格式不对!")return false;}else{//计算第18位数是否符合要求for(var i=0;i<18;i++){sum += idCard.substring(i,i+1)*arr[i]}if(num== arr2[sum%11] || num===arr2[sum%11]){ $("#age").val(age)if(sex%2 == 1){$("#man").prop("checked","true")}else{$("#woman").prop("checked","true")}$.ajax({url:"IdCardServlet",type:"get",data:{idCard:idCard},success:function(data){$.each(data,function(index,obj){$("#dess").val(obj.detail);})}})}else{alert("⾝份证输⼊格式不对!")$("#man").removeAttr("checked")$("#woman").removeAttr("checked")$("#dess").val("");$("#age").val("");return false;}}})</script></body></html>效果图:如果需要显⽰籍贯的话,需要那对应的数字去数据库中查找显⽰。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JavaScript正则表达式验证身份证号码是否合法(两种方法)
正则表达式(regular expression)是一个描述字符模式的对象。

下面通过本篇文章给大家介绍js正则表达式验证身份证号码是否合法,需要的朋友可以参考下本篇文章
第一种方法:
在用户注册页面有些需求要求的比较严格,需要对身份证js验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客。

下面就此实现方法给大家讲解下。

很多时候我们都是通过一组正则表达式来判断用户输入的身份证是否合法,那在用正则表达式判断之前,你对身份证号的组成有多少了解呢?下面来说说一个身份证号里面包含了多少的信息:
1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

2、地址码(前六位数)
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按gb/T2260的规定执行。

3、出生日期码(第七位至十四位)
表示编码对象出生的年、月、日,按gb/T7408的规定执行,年、月、日代码之间不用分隔符。

4、顺序码(第十五位至十七位)
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

5、校验码(第十八位数)
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。

X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

在知道身份证号结构组成各部分的意思后,我们开始进入主题:
1、定义一个全国地区的对象
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:"国外"}
2、正则表达式判断
第二种方法:
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
位),皆为数字
if(len == '15')
{
var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
var arr_data = obj.match(re_fifteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date('19'+year+'/'+month+'/'+day);
return verifyBirthday('19'+year,month,day,birthday);
}
//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4
位),校验位末尾可能为X
if(len == '18')
{
var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
var arr_data = obj.match(re_eighteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date(year+'/'+month+'/'+day);
return verifyBirthday(year,month,day,birthday);
}
return false;。

相关文档
最新文档