【发布时间】:2014-12-12 02:02:51
【问题描述】:
我正在完成我必须为我的家庭作业做的表格,就在我以为我已经完成时,我发现了一个错误。
我需要一个用于输入字段的正则表达式,如果不完全是 13 位数字,它将返回警报。
虽然我知道正确的正则表达式是:/^\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'"/>
【问题讨论】:
标签: javascript regex digits