欢迎来到忆约科技! 手机版

C# 社区推荐

当前位置:首页 > 编程专栏 > 正文

C# 正则验证公民身份证号包含15位18位

编辑时间:2018年03月06日 16:20 作者:E小编

新签发的身份证号标准位数为18位,但是之前老的身份证号位数是有15位
        static void Main(string[] args)
        {
            // length=15 or 18 ^([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}[A-Za-z]))$
            // length=15       ^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
            // length=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}[A-Za-z])$

            string cardid = "220123199912121234";
            // 正则验证
            if (System.Text.RegularExpressions.Regex.IsMatch(cardid, @"^([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}[A-Za-z]))$"))
            {
                Console.WriteLine("true");
            }
            else
            {
                Console.WriteLine("false");
            }

            Console.ReadLine();
        }


二维码