我正在完成一份我必须为我的作业做的表格,就在我认为我完成的时候,我发现了一个错误。
我需要一个RegEx作为输入字段,如果没有正确的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'"/>
答案 0 :(得分:5)
非常接近!
/^$|^\d{13}$/
您只是忘了指定13位数字从字符串的开头
开始答案 1 :(得分:0)
此外,只是match()
的替代方法,使用test()
if (!/^\d{13}$/.test(box.value)) {
alert("13 numbers are required");
document.getElementById("numbers").value = '';
}