簡體   English   中英

Javascript正則表達式匹配5或9位郵政編碼

[英]Javascript Regular Expression to match 5 or 9 digit zipcode

我有一個與我最近的帖子類似的問題,但使用郵政編碼驗證器,我正在嘗試轉換為 javascript 驗證過程。 我的腳本看起來像這樣:

    var regPostalCode = new RegExp("\\d{5}(-\d{4})?");
    var postal_code = $("input[name='txtzipcode']").val();
    if (regPostalCode.test(postal_code) == false) {
        bValid = false;
        msg = msg + '<li>Invalid Zip Code.</li>';
    }

從我最近的帖子中,我了解到一開始需要的轉義字符。

基本上,這個函數正在驗證一個郵政編碼,它說22601是正確的,但它不應該驗證22601-1 破折號后應該有 4 位數字,如22601-9999 這就像驗證的第二部分總是正確的。 這個表達在過去對我有用。 我錯過了什么嗎? 是否需要另一個轉義字符?

添加錨點: new RegExp("^\\\\d{5}(-\\\\d{4})?$") 這會強制正則表達式引擎只接受匹配,如果它從字符串的第一個字符 ( ^ ) 開始並在匹配的字符串 ( $ ) 的末尾結束。

請注意,您在問題中給出的正則表達式中可能有拼寫錯誤:第二個\\d缺少反斜杠。

將您的正則表達式更改為:

new RegExp("^\\d{5}(-\\d{4})?$")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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