簡體   English   中英

正則表達式用於固定位數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM