我正在完成作业中必须做的表格,就在我以为自己完成时,我发现了一个错误。
我需要一个用于输入字段的正则表达式,如果没有恰好是 13 位数字,它会返回一个警报。
虽然我知道正确的 RegExp 是:/^\d{13}$/
,但我还需要它来忽略空字段。 (因为我不希望在用户切换到不同的输入字段时触发警报)
就在我以为我有它的时候:/^$|\d{13}$/
,事实证明,如果少于 13 位数字,它会返回一个警报,但如果还有更多,不像 /^\d{13}$/
可以很好地处理 14 位以上的数字。
有人可以帮我解决这个问题吗?谢谢
这是函数的其余部分:
function checkNum(box) {
var re= new RegExp(/^$|\d{13}$/);
if(!box.value.match(re)) {
alert("13 numbers are required");
document.getElementById("numbers").value = '';
}
}
这里是输入框:
<input type="text" name="numbers" id="numbers" placeholder="Numbers" onFocus="this.placeholder=''" onBlur="checkNum(this); this.placeholder='Numbers'"/>
最佳答案
非常接近!
/^$|^\d{13}$/
你只是忘了指定从字符串开头开始的13位数字
关于javascript - 固定位数的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435700/