优秀的编程知识分享平台

网站首页 > 技术文章 正文

C# Win Form 字符串函数与正则表达式取子串

nanyue 2024-09-15 23:30:13 技术文章 3 ℃

在获取Form窗体TextBox控件值时,很多情况下需要我们在进行数据存储前对数据进行检查以保证所存储的数据的安全性。同时针对部分字符串需要进行取子串等操作。本文主要针对实际案例需求对字符串函数与正则表达式使用进行说明,希望对初学者能够有所帮助。首先给出案例Form设计:


问题描述:本例题中需要实现部分功能,当用户输入身份证号码时需要对号码进行校验,具体要求为输入合法的身份证号,自动填写显示出生日期和性别,如果身份证倒数第二位为奇数,该参赛选手是男性;否则为女性。解决思路方法如下:

1、身份证的格式检查

身份证的读取主要通过正则表达式实现,以18位身份证为例我们可以把身份证号码划分成4部分(地址6为,生日8位,顺序码3位,校验码1位)

  1. 地区地址正则表达式:[1-9]\d{5};
  2. 生日正则表达式:((0[1-9])|10|11|12)(([0-2][1-9])|30|31|10|20);
  3. 顺序码表达式:\d{3};
  4. 校验码表达式:[0-9Xx];

该判断方法基本满足身份证检查要求,其中2月分较为特别,没有单独做判断;

Ismatch方法主要判断是否与规则匹配,返回值位Bool类型,因此我们可以通过返回值进行判断,对用户输入的身份证号做出格式判断与检查。通过格式检查之后我们可以进一步读取性别与出生日期

2、性别与生日的读取

性别与生日的读取主要可以采用两种方法实现,一种为字符串的取子串方法substring(),一种为正则表达式类提供的match()方法,我们将对两种方法实现进行简单说明。

(1) 字符串方法实现性别生日的读取

使用该方法实现性别与生日读取较为简单,只需要调用字符串函数substring即可,该函数可带两个参数,开始截取位置与截取长度。因此取性别与生日实现代码如下:

(2)正则表达式取字符串

通过正则表达式也可以实现找到并返回匹配的子串,Regex对象提供的Match方法可以带两个参数,分别为待匹配的字符串与匹配开始的位置。因此我们可以用该方法获取字符串中指定位置的指定字符。实现代码如下:


以上给出两种方式进行字符串指定位置的子串的提取,在实际进行程序编写时可以根据需求选择合适的字符串匹配提取方式进行子串的匹配与提取。本例题最终效果演示gif动图如下:


本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!

往期内容分享如下:

  1. Win Form登录框本地记住密码功能实现
  2. C# Win Form 编程实现图片的数据库存储
  3. C# Win Form 实现XML文件读写
  4. C# Win Form 读取CSV文件数据
  5. C# Win Form 动态添加CheckBox控件
  6. C# Win Form 窗体间传递参数的几种方法总结
  7. C# win Form开发 构造指定格式数据表字段值
  8. C# Win Form 记录集分页显示的实现
最近发表
标签列表