asp:RegularExpressionValidator控件怎么验证身份证

狂飚 2015-12-25 04:40:37
一般是要验证些什么?我现在验证了2个:

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="IDnumber" ValidationExpression="\d{17}[\d|X]" ErrorMessage="身份证号为18位" Display="Dynamic"></asp:RegularExpressionValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="IDnumber" ValidationExpression="[^%&',;=?$\x22]+" ErrorMessage="含有特殊符号" Display="Dynamic"></asp:RegularExpressionValidator>

现在我想验证身份证中间的出生年月日,不能低于1900年1月1日,不能高于2022年12月31日,请问怎么验证?
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂飚 2015-12-29
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
你只要验证18位的,那你正则改下,这里只是简单认证,只能说日期部分你输入正常的日期,还是不正常的日期,都可以通过
@"^\d{6}(19\d{6}|20(1\d|2[0-2])\d{4})\d{3}[\d|X]$"
引用 5 楼 From_TaiWan 的回复:
给你一个 ((19\d{2})|(20(([01]\d)|(2[012]))))((0\d)|(1[012]))((0\d)|([12]\d)|(3[01])) 我这个也比较简单,没有考虑闰年、有没有31号、二月最多29号等
结合一下是不是这样
@"^\d{6}((19\d{2})|(20(([01]\d)|(2[012]))))((0\d)|(1[012]))((0\d)|([12]\d)|(3[01]))\d{3}[\d|X]$"
秋的红果实 2015-12-25
  • 打赏
  • 举报
回复
引用 5 楼 From_TaiWan 的回复:
给你一个 ((19\d{2})|(20(([01]\d)|(2[012]))))((0\d)|(1[012]))((0\d)|([12]\d)|(3[01])) 我这个也比较简单,没有考虑闰年、有没有31号、二月最多29号等
这个只验证考虑年月日,不是身份证号的;身份证号更复杂,尾数,对于男、女性别,对应1,2;而且开头的6位代表区划,不过,只要你研究清这些规则,就不难了
秋的红果实 2015-12-25
  • 打赏
  • 举报
回复
给你一个 ((19\d{2})|(20(([01]\d)|(2[012]))))((0\d)|(1[012]))((0\d)|([12]\d)|(3[01])) 我这个也比较简单,没有考虑闰年、有没有31号、二月最多29号等
  • 打赏
  • 举报
回复
你可以再找下怎么验证日期部分的,因为验证日期是个很复杂的正则,你可以找下那个可以验证闰年的正则,长的吓死人
狂飚 2015-12-25
  • 打赏
  • 举报
回复
看懂了,我去查查正则表达式怎么写,谢谢
狂飚 2015-12-25
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
你只要验证18位的,那你正则改下,这里只是简单认证,只能说日期部分你输入正常的日期,还是不正常的日期,都可以通过
@"^\d{6}(19\d{6}|20(1\d|2[0-2])\d{4})\d{3}[\d|X]$"
这个验证了年份,没有验证月和日啊,像13月就是正常的
  • 打赏
  • 举报
回复
你只要验证18位的,那你正则改下,这里只是简单认证,只能说日期部分你输入正常的日期,还是不正常的日期,都可以通过
@"^\d{6}(19\d{6}|20(1\d|2[0-2])\d{4})\d{3}[\d|X]$"
课程介绍:第一章:正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。第二章:http协议是一种无状态协议,不记录用户行为,我们可以利用cookie记录数据,方便用户操作,提升用户体验。第三章:ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。第四章:本章主要讲解JS动画原理、动画函数封装和轮播。第五章:本章主要讲解面向对象、构造函数和继承、原型链和继承。第六章:本节课程主要讲解了什么是Ajax、如何使用Ajax发送get请求、如何使用Ajax发送post请求、JSON数据格式、回调地狱、Promise和Ajax的同源策略、跨域请求。第七章:本章主要讲解html、val、attr、prop、class、全选框、动画、节点遍历、ajax、sonp、event、multiple、plugin、plugin、magnifier。第八章:本章主要讲解UML类图、单例模式、工厂模式、策略模式、代理模式、观察者模式。第九章:本章主要讲解为什么要模块化、原生JS中,模块的写法、AMD、CommonJS&Webpack。第十章:本节课程主要讲解了服务器安装环境配置、端口及ip基本常识、简单认识PHP(helloworld)、基本语法和动态网页原理。第十一章:本节课程主要讲解了什么是SASS、SASS的预处理、ass语法(变量、嵌套、导入、mixin、扩展、function、expression)。第十二章:本节课程主要讲解了什么是GULP、GULP环境配置、GULP基本使用及GULP的插件安装与使用。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧