a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#中判斷身份證號(hào)是否正確的方法

2023-05-16 12:36:02
字體:
供稿:網(wǎng)友

最近,在一個(gè)項(xiàng)目中想判斷輸入的身份證號(hào)是否正確,則自己編寫了一個(gè)用于判斷身份證號(hào)是否正確的方法,用于判斷用戶輸入的身份證號(hào)是否合法。因?yàn)楫?dāng)時(shí)項(xiàng)目比較急,寫的方法也比較潦草,也沒有進(jìn)行優(yōu)化,在使用過程中還未發(fā)現(xiàn)有錯(cuò)誤。

這個(gè)方法能夠判斷15位的身份證號(hào)和18位的身份證號(hào)。

        /// <summary>
        /// 判斷字符串是否為身份證號(hào)
        /// </summary>
        /// <param name="strCardCode">輸入的字符串</param>
        /// <returns>bool:是否為身份證號(hào)</returns>
        public static bool IsCardCode(string strCardCode)
        {
            bool isRight = true;
            if (strCardCode.Length != 18 && strCardCode.Length != 15)
                return false;
            else if (strCardCode.Length == 15)
            {
                try
                {
                    Convert.ToInt64(strCardCode);
                }
                catch
                {
                    return false;
                }

            }
            else if (strCardCode.Length == 18)
            {
                string[] prov ={"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","81","82"};
                string s1 = strCardCode.Substring(0, 2);
                string s2 = strCardCode.Substring(0, 17);
                string s3 = strCardCode.Substring(6, 8);
                string s4 = s2.Substring(16, 1);
                try
                {
                    Convert.ToInt64(s2);
                }
                catch
                {
                    return false;
                }
                int iPos = 0;
                for (iPos = 0; iPos < prov.Length; iPos++)
                {
                    if (prov[iPos] == s1)
                        break;
                }
                if (iPos >= prov.Length)
                {
                    return false;
                }
                if (Convert.ToInt32(s3.Substring(0, 4)) < 1910 || Convert.ToInt32(s3.Substring(0, 4)) > (DateTime.Now.Year - 10))
                {
                    return false;
                }
                if (Convert.ToInt32(s3.Substring(4, 4).Substring(0, 2)) == 0 || Convert.ToInt32(s3.Substring(4, 4).Substring(0, 2)) > 12)
                {
                    return false;
                }
                int iTmp = Convert.ToInt32(s3.Substring(4, 4).Substring(2, 2));
                if (iTmp == 0 || iTmp > 31)
                {
                    return false;
                }
                if (strCardCode.Substring(17, 1).ToUpper() != "X")
                {
                    try
                    {
                        Convert.ToInt32(strCardCode.Substring(17, 1));
                    }
                    catch
                    {
                        return false;
                    }
                }
            }
            return isRight;
        }

注意:由于項(xiàng)目的特殊性,這個(gè)方法將1910年之前出生的以及小于10歲的身份證號(hào)視為非法號(hào)碼,你可以根據(jù)需要進(jìn)行修改。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人在线视频网站 | 国产精品一区二区三区四区在线观看 | 亚洲三级在线观看 | 狠狠综合久久av一区二区老牛 | 精品国产乱码久久久久久久 | 午夜香蕉视频 | 亚洲精品色 | 精品综合 | 午夜欧美| 日韩视频中文字幕 | 在线中文av | 久久成人一区 | 最新日韩av | 毛片网站免费观看 | 国产aⅴ | 玖玖成人| 九九视频这里只有精品 | 亚洲国产精品女人久久久 | 91豆花视频| 狠狠躁天天躁夜夜添人人 | 国产精品一区二区三区在线 | 亚洲欧美激情精品一区二区 | 欧美xxxx色视频在线观看免费 | 韩日精品 | 亚洲一区中文字幕在线观看 | 国产高清一区二区 | 在线不卡日韩 | 黄色在线免费观看 | 国产精品久久久一区二区 | 日韩欧美www | 国产依人在线 | 日本免费不卡 | 日韩草比| 欧美亚洲 | 久久4 | 欧美日韩成人在线视频 | 成人av电影免费在线观看 | 国产高清第一页 | 久久久精品国产 | 国产高清在线精品一区 | 久久99深爱久久99精品 |