javascript判断一个15或18位数字,帮忙看下哪错了

<body><table><tr><td>身份证号:</td><td><inputtype="text"id="sfz"/></td><td><inputtype="bu... <body>
<table>
<tr>
<td>身份证号:</td>
<td><input type="text" id="sfz" /></td>
<td><input type="button" value="确定" onclick="checkID" /></td>
</tr>
</table>
<script type="text/javascript">
function checkID()
{
var a1=/^\d{15}|\d{}18$/;
if(!a1.test(document.getElementById('sfz').value))
{
alert('格式错误');
}
else
{
}
}
</script>
</body>
展开
 我来答
原来你是这薯片
2017-10-09 · TA获得超过206个赞
知道小有建树答主
回答量:124
采纳率:50%
帮助的人:98.3万
展开全部
  1. 首先这一行少了一个括号,

    <input type="button" value="确定" onclick="checkID()" />
  2. 其次检测身份证号码的正则表达式推荐使用这个,

    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
pharaoh_168
推荐于2017-10-09 · 知道合伙人互联网行家
pharaoh_168
知道合伙人互联网行家
采纳数:527 获赞数:1425
1998年武汉大学本科毕业 2003年中科院测量与地球物理研究所硕士毕业

向TA提问 私信TA
展开全部
<td><input type="button" value="确定" onclick="checkID" /></td>

应该是 <td><input type="button" value="确定" onclick="checkID()" /></td>

var a1=/^\d{15}|\d{}18$/;

应该是:
var a1=/^\d{15}|\d{18}$/;
更多追问追答
追问
都改了,还是没用  T.T
追答
<body>
<table>
     <tr>
         <td>身份证号:</td>
            <td><input type="text" id="sfz" /></td>
            <td><input type="button" value="确定" onclick="checkID()" /></td>
     </tr>
 </table>
    <script type="text/javascript">
function checkID() 
{
var a1=/^(\d{15}|\d{18})$/;
if(!a1.test(document.getElementById('sfz').value))
{
alert('格式错误');
}
else
{
                alert("ok");
    }
}
</script>
</body>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0498059
2015-10-25 · TA获得超过259个赞
知道小有建树答主
回答量:286
采纳率:75%
帮助的人:190万
展开全部
\d{}18是什么意思
\d{18}
更多追问追答
追问
这个是网上找的判定条件,我改成你说的那种后还是没用,整个函数好像就没调用
追答
a1=/^(\d{15}|\d{18})$/;

onclick="checkID"改成

onclick="checkID()"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式