解释一段正则表达式(从身份证获取生日日期)

a156435646 2012-09-19 10:16:51
<script language="javascript">
function getBirthday(){
var str=form1.IDCard.value; //获取输入的身份证号码
var objExp=/\d{6}([12]\d{3})([01]\d)([0123]\d)\d{4}/; //创建RegExp对象
arr=objExp.exec(str); //执行模式匹配
if(arr!=null){
alert("您的身份证号为:"+arr[0]+"\r出生日期为:"+arr[1]+"-"+arr[2]+"-"+arr[3]);
}else{
alert("您输入的身份证号码不合法!");
}
}
</script>


objExp=/\d{6}([12]\d{3})([01]\d)([0123]\d)\d{4}/;这段怎么解释?从str先读取6个数字。然后呢
...全文
704 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a156435646 2012-09-19
  • 打赏
  • 举报
回复
谢谢,感激,好人有好报
木薯超人 2012-09-19
  • 打赏
  • 举报
回复
补一句\d匹配数字 主要是数字就OK
木薯超人 2012-09-19
  • 打赏
  • 举报
回复
/\d{6}前六位匹配
[12]第七位 年份只能1 和2里面选 毕竟没3XXX年
\d{3}八-十 是个数字就行
总结 7-10位 年份开始只能是1和2 后三位是数字
[01] 十一位 代表月份 你没见过20月吧 只能是 0 或者1
\d 十二位 也是月份 0-9,9个月
总结 11位 月份开始只能是1和2 后一位是数字
[0123] 十三位 代表日子 一个月30天 不可能出现40几日
\d 十四位 0-9
总结 13位 日开始只能是1、2、3 后一位是数字
这函数没用过,可能能匹配上就返回一个STR, 如果有括号 就吧括号内能匹配的组合成数组返回

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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