[英]RegEx for fixed number of digits?
我正在完成一份我必須做的作業表格,而當我以為自己完成時,我發現了一個錯誤。
我需要一個RegEx作為輸入字段,如果輸入的位數不完全是13位,它將返回警報。
雖然我知道正確的RegExp是: /^\\d{13}$/
,但我還需要它來忽略一個空字段。 (因為我不希望用戶切換到其他輸入字段時觸發警報)
就在我以為: /^$|\\d{13}$/
,事實證明,如果少於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位數字
另外,可以作為match()
的替代方法,以進行更快的布爾檢查,請使用test()
if (!/^\d{13}$/.test(box.value)) {
alert("13 numbers are required");
document.getElementById("numbers").value = '';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.