JSP身份z号码的正则表达式验证

JSP身份z号码的正则表达式验证,第1张

这个简单,在jsp页面上写个脚本,首先第一步(你的字符串这里设为str):
用strlength来做参数判断是否为18位
2截取字符串前十七个,用正则判断
3最后一个再用正则判断
正则的脚本如下:(首先申明,未经测试)
function isNumber(str){
var rege=/[\d]/g;
var a=strmatch(rege);
if(a==null)
alert('必须是数字');
}
function isNumberOrAlpha(str){
var rege=/[\da-zA-Z]/g;
var a=strmatch(rege);
if(a==null)
alert('必须是数字或字母');
}
对于正则表达式,你可以在csdn网上找一本《精通正则表达式看》

//身份z正则表达式(15位)
$isIDCard1="/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/";
//身份z正则表达式(18位)
$isIDCard2="/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/";
只给出规则,函数自己写

你好,正则表达式不适合做logic判断,他比较容易来做匹配,下面的代码可以旁边判断是不是2月,同时帮忙判断2月的日期,但是其他的需要另外的代码来做了,否者正则表达式就是一堆数字的或了。
import re
hit =0
inputStr= "341201196002213421"
resultList = research("([\d]{6}([\d]{4})02([0-2][\d])[\d]{3}[0-9Xx])",inputStr)
if resultList:
year = int(resultListgroup(2))
if year%4 ==0 and year%100!=0:
hit =1
print ("闰年")
date = int(resultListgroup(3))
if hit ==1 and date >29:
print ("日期错误")
elif hit ==0 and data >28:
print ("日期错误")
else:
print ("日期正确")

[19,20]表示字符1,9,2,0,逗号中任意一个
表示19或20应为(19|20) ,[1,2]应为[12]不应包括逗号字符
/^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dxX]$/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13332631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存