zoukankan      html  css  js  c++  java
  • 请问在C#的Winform下如何用正则表达式限制用户只能在textBox中输入18位的身份证号码。

    请问在C#的Winform下如何用正则表达式限制用户只能在textBox中输入18位的身份证号码。

    2013-06-18 11:07会飞的鱼儿18 | 分类:C#/.NET | 浏览101次
    不能有空格和字母字符。
     
    2013-06-18 11:28提问者采纳
     
    private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar == 13)
    {
    if (Isshenfenzheng(textBox2.Text.Trim()) == true)
    {
    // MessageBox.Show("OK");
    if (textBox2.Text.Trim().Length <= 18)
    {
    MessageBox.Show("OK");
    }
    else
    {
    MessageBox.Show("长度必须等于18");
    }

    }
    else
    {
    MessageBox.Show("NG");
    }
    }
    }
    protected bool Isshenfenzheng(string sfz)
    {
    return System.Text.RegularExpressions.Regex.IsMatch(sfz, @"^(d{17}[d|X])");
    }



    ---------------------------------------------------

    [0-9]{6}(19|20)[0-9]{2}[0|1][0-9][0-3][0-9]{4}[0-9|x|X]

    这个是身份证编号的简单正则匹配方式(1900-2099年出生的身份证编号 如有需要针对修改)

    可以进一步根据身份证号码最后一位的验证码,做有效性判断。判断方法如下:
    将身份证的前17位依次对应下列数据相乘后求和:
    7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2

    将求和的的结果除以11求余数,余数
    0-1-2-3-4-5-6-7-8-9-10 对应验证码:
    1-0-X -9-8-7-6-5-4-3-2
    如果计算获取的验证码和身份证最后一位相同,则有效!
  • 相关阅读:
    莫队专题
    AJAX XML 实例
    AJAX 简介
    AJAX 服务器响应
    AJAX 创建XMLHttpRequest 对象
    AJAX 教程
    AJAX 向服务器发送请求
    AJAX onreadystatechange 事件
    AJAX ASP/PHP 请求实例
    让卖场的死角“起死回生”
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3338651.html
Copyright © 2011-2022 走看看