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