网站首页 > 技术文章 正文
在获取Form窗体TextBox控件值时,很多情况下需要我们在进行数据存储前对数据进行检查以保证所存储的数据的安全性。同时针对部分字符串需要进行取子串等操作。本文主要针对实际案例需求对字符串函数与正则表达式使用进行说明,希望对初学者能够有所帮助。首先给出案例Form设计:
问题描述:本例题中需要实现部分功能,当用户输入身份证号码时需要对号码进行校验,具体要求为输入合法的身份证号,自动填写显示出生日期和性别,如果身份证倒数第二位为奇数,该参赛选手是男性;否则为女性。解决思路方法如下:
1、身份证的格式检查
身份证的读取主要通过正则表达式实现,以18位身份证为例我们可以把身份证号码划分成4部分(地址6为,生日8位,顺序码3位,校验码1位)
- 地区地址正则表达式:[1-9]\d{5};
- 生日正则表达式:((0[1-9])|10|11|12)(([0-2][1-9])|30|31|10|20);
- 顺序码表达式:\d{3};
- 校验码表达式:[0-9Xx];
该判断方法基本满足身份证检查要求,其中2月分较为特别,没有单独做判断;
Ismatch方法主要判断是否与规则匹配,返回值位Bool类型,因此我们可以通过返回值进行判断,对用户输入的身份证号做出格式判断与检查。通过格式检查之后我们可以进一步读取性别与出生日期
2、性别与生日的读取
性别与生日的读取主要可以采用两种方法实现,一种为字符串的取子串方法substring(),一种为正则表达式类提供的match()方法,我们将对两种方法实现进行简单说明。
(1) 字符串方法实现性别生日的读取
使用该方法实现性别与生日读取较为简单,只需要调用字符串函数substring即可,该函数可带两个参数,开始截取位置与截取长度。因此取性别与生日实现代码如下:
(2)正则表达式取字符串
通过正则表达式也可以实现找到并返回匹配的子串,Regex对象提供的Match方法可以带两个参数,分别为待匹配的字符串与匹配开始的位置。因此我们可以用该方法获取字符串中指定位置的指定字符。实现代码如下:
以上给出两种方式进行字符串指定位置的子串的提取,在实际进行程序编写时可以根据需求选择合适的字符串匹配提取方式进行子串的匹配与提取。本例题最终效果演示gif动图如下:
本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!
往期内容分享如下:
猜你喜欢
- 2024-09-15 C#内插字符串(c# 字符串)
- 2024-09-15 C#中动态编译并执行字符串代码,类似javascript中的eval方法
- 2024-09-15 精通C#整数转字符串:多种方法解密填充零的奥秘
- 2024-09-15 一个超实用随机字符串生成方法,超经典!
- 2024-09-15 c#正则判断字符串是否为mac地址(c# 正则表达式判断字符串是否全是数字)
- 2024-09-15 C# 判断字符串是否为手机号的函数
- 2024-09-15 C# 基础知识系列- 13 常见类库介绍(二)日期时间类
- 2024-09-15 揭秘:带引号的字符串字面量的魅力与用途!
- 2024-09-15 C#中的转义符与原始字符串(c# &转义)
- 2024-09-15 c#将一个字符串加入到已有的字符串组中
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 504℃MySQL service启动脚本浅析(r12笔记第59天)
- 482℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 481℃启用MySQL查询缓存(mysql8.0查询缓存)
- 461℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 441℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 438℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)