如何用javascript正则表达式验证身份证号

JavaScript013

如何用javascript正则表达式验证身份证号,第1张

很简单

function CheckCardNo(card) 

  // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 

  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ 

  if(reg.test(card) === false) 

  { 

    alert("身份证输入不合法") 

    return false 

  } 

}

CheckCardNo('123456778')

18位身份证:

先用这个表达式取出出生年份

\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网上找一本《精通正则表达式看》