onkeyup正则表达式验证身份证号?

要完整的,18位数字、17位数字+字母(一位X,x)... 要完整的,18位数字、17位数字+字母(一位X,x) 展开
 我来答
哇噻美女
2012-11-19 · TA获得超过450个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:171万
展开全部
十八位数字或17位数字加X(x):
^((\d{18})|(\d{17}[Xx]))$
追问
onkeyup="this.value=this.value.replace(/^((\d{18})|(\d{17}[Xx]))$/g,'')"
能修改下不
追答
用this.value貌似是个输入框,每次输入都onkeyup这样不行,这样:

或者在提交之前判断吧,至少要在输入完毕有进一步动作的时候
againinput4
2012-11-19 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:647万
展开全部
\d{17}([\d|X|x]{1}])?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SouffleForet_Q
2019-04-01
知道答主
回答量:16
采纳率:0%
帮助的人:4727
展开全部

onkeyup="this.value=this.value.replace(/[^\dXx]/g,'')"这个一定行(测试成功了,针对身份证号,我觉得没有必要纠结第几个输入了非数值,只要一输入就replace不就好了嘛)

我的身份证号输入的整个判断:

<input type="text"  class="form-control" data-toggle="popover" data-placement="right"  placeholder="身份证号"
data-content="该身份证号码已存在" onblur="cardNo_check()" id="cardNo" name="cardNo"
maxlength="18"
onkeyup="this.value=this.value.replace(/[^\dXx]/g,'')" onafterpaste="this.value=this.value.replace(/[^\dXx]/g,'')"
onkeydown="if(event.keyCode==13)event.keyCode=9 " onfocusout="var re=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if (!(re.test(this.value))&&value!='') {alert('身份证号格式不正确!'); }">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式