A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

10黑马币
怎么用正则表达式验证身份证号?

最佳答案

查看完整内容

isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;

8 个回复

倒序浏览
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
回复 使用道具 举报
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])$)$/;
回复 使用道具 举报
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);
        }
}
回复 使用道具 举报
求给分。。。。。。。。。。
回复 使用道具 举报
"^[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三天也能匹配成功,对于要求不严格的系统可以先用。
回复 使用道具 举报
啥语言???
回复 使用道具 举报
(1)前1、2位数字表示:所在省份的代码;  
(2)第3、4位数字表示:所在城市的代码;  
(3)第5、6位数字表示:所在区县的代码;  
(4)第7~14位数字表示:出生年、月、日;  
(5)第15、16位数字表示:户口所在地派出所的代表号码;  
(6)第17位数字表示性别:奇数表示男性,偶数表示女性;  
(7)第18位数字是校检码:代表个人信息,是根据前十七位数字计算出来的

按照这个条件就可以了,如果需要代码的话待会我写完可以发给你,
回复 使用道具 举报
public class Demo2 {
        public static void main(String[] args) {
                String str = "430621199012038493";
                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");

                }

        }

}
求给分。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马