[英]JavaScript Regular Expression to validate an address
我正在嘗試修改此腳本以接受 , - 和 ' 以便此正則表達式驗證表單上的地址是否正確編寫?
^[a-zA-Z0-9\s\,\''\-]*$
它有效,但有一些多余的轉義。
您無需轉義逗號、單引號和連字符。 僅當字符具有特殊含義並且您想按字面意思使用它時才轉義。 在 char 類中:
-
是元字符,但不是出現在開頭或結尾時。 在你的情況下,它出現在最后,所以它失去了它的特殊意義(范圍制作)。]
是一個元字符,它標志着字符類的結束。 因此,如果您想讓]
成為 char 類的一部分,則需要對其進行轉義。所以你可以把你的正則表達式寫成:
^[a-zA-Z0-9\s,'-]*$
在評論中,Daniel Vandersluis 有一個非常好的觀點:地址不能僅通過正則表達式進行驗證。 USPS 有一個名為 CASS(編碼精度支持系統)的完整部門,專門用於驗證地址數據。 我在SmartyStreets工作,在那里我們為人們提供 CASS 認證的服務。 事實上,如果您真的對好的地址感興趣,我會親自幫助您入門(例如,使用 Javascript 真的很容易。只需要一分鍾左右。)
當您的輸入是“House No.-780”時,以上回答的正則表達式給出錯誤。 用戶可以添加“.” 到地址,因此我們必須制作也接受點的正則表達式。 您可以使用此正則表達式
/^[a-zA-Z0-9\s,.'-]{3,}$/ .
此正則表達式接受最少三個字符,並且最大字符數沒有限制。 字符可能包括 az、AZ 字母、空格、逗號 (,)、點 (.)、撇號 (') 和破折號 (-) 符號。
如果您只想接受這些字符(或空字符串)中的任何一個,那么您可以修改您當前擁有的內容:
/^[a-z0-9\s,'-]*$/i
然而,這絕不是街道地址驗證器。 我建議你從某個地方學習更多關於正則表達式的知識。 http://www.regular-expressions.info/examples.html是一個很好的起點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.