黑马程序员技术交流社区
标题:
怎么用正则表达式验证身份证号?
[打印本页]
作者:
飞飞飞丨
时间:
2015-8-6 18:04
标题:
怎么用正则表达式验证身份证号?
怎么用正则表达式验证身份证号?
作者:
CtrlChengAo
时间:
2015-8-6 18:04
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
作者:
rhyme
时间:
2015-8-6 19:17
var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[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])$)$/;
作者:
我想去黑马
时间:
2015-8-6 21:15
class RegexTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();
boolean flag = validationIDCard(data);
System.out.println(flag);
}
//校验键盘录入的身份证号是否合法
public static boolean validationIDCard(String data) {
String regex = "(\\d{15}|\\d{18}|\\d{17}(\\d|X|x))";
return data.matches(regex);
}
}
作者:
我想去黑马
时间:
2015-8-6 21:16
求给分。。。。。。。。。。
作者:
wode1311
时间:
2015-8-6 21:38
"^[0-9]{6}[12][09][0-9]{2}(([0][1-9])|([1][0-2]))(([0][1-9])|([12][0-9])|([3][01]))[0-9]{3}[0-9X]$"
自己刚刚拼写的,用Java语言测试了一下,感觉还行,就是对身份证中出生日期的2月份匹配不够准确,存在29,30,31三天也能匹配成功,对于要求不严格的系统可以先用。
作者:
yefeidd
时间:
2015-8-6 21:58
啥语言???
作者:
FateYin
时间:
2015-8-6 22:53
(1)前1、2位数字表示:所在省份的代码;
(2)第3、4位数字表示:所在城市的代码;
(3)第5、6位数字表示:所在区县的代码;
(4)第7~14位数字表示:出生年、月、日;
(5)第15、16位数字表示:户口所在地派出所的代表号码;
(6)第17位数字表示性别:奇数表示男性,偶数表示女性;
(7)第18位数字是校检码:代表个人信息,是根据前十七位数字计算出来的
按照这个条件就可以了,如果需要代码的话待会我写完可以发给你,
作者:
a312284016
时间:
2015-8-6 23:44
public class Demo2 {
public static void main(String[] args) {
String str = "43062119901203****";
String regex = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{4}$";
String regex1 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
if (str.matches(regex) || str.matches(regex1)) {
System.out.println("true");
;
} else {
System.out.println("false");
}
}
}
求给分。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2