先用这个表达式取出出生年份
\d{6}(\d{4})\d{8}
$1就是四位的年份,比如1986
在用这个表达式判断是不是在1900-2000之间
(19\d{2}|2000)
15位身份证,这种身份证1900和2000是区分不出来的,这种身份证年份只用后两位表示
先用这个表达式取出出生年份
\d{6}(\d{2})\d{7}
$1就是二位的年份,比如86
在用这个表达式判断是不是在1900-2000之间
\d{2}
这是主要的方法,细节就不写啦,呵呵,我还有活,祝你好运
这个简单,在jsp页面上写个脚本,首先第一步(你的字符串这里设为str):用str.length来做参数判断是否为18位
2.截取字符串前十七个,用正则判断
3.最后一个再用正则判断
正则的脚本如下:(首先申明,未经测试)
function isNumber(str){
var rege=/[\d]/g
var a=str.match(rege)
if(a==null)
alert('必须是数字')
}
function isNumberOrAlpha(str){
var rege=/[\da-zA-Z]/g
var a=str.match(rege)
if(a==null)
alert('必须是数字或字母')
}
对于正则表达式,你可以在csdn网上找一本《精通正则表达式看》