簡體   English   中英

JavaScript正則表達式以驗證地址

[英]JavaScript regex to validate an address

我想使用正則表達式來驗證JavaScript中的住所地址,但是我對正則表達式了解不多,我試圖構建自己的正則表達式( /^[a-zA-Z\\s](\\d)?$/ ),但似乎無法正常工作。

我要實現的是允許字母,空格和至少一個數字(這是必需的),並且還應該有可能插入斜杠/但不應該這樣。

有人可以幫我嗎?

我會讓您入門,但是隨着您習慣了正則表達式,您會發現自己變得更加具體。 首先,讓我們檢查一下您的正則表達式:

/^[a-zA-Z\s](\d)?$/

這里要注意的重要一點是,此正則表達式最多只能匹配兩個字符的字符串! 字符類[ ... ]匹配單個字符:在您的情況下為字母和空格。 您需要將其與量詞結合使用, 例如 *表示“零個或多個”, +表示“一個或多個”,以及? 意思是“零或一”。 您在其他地方使用了量詞, (\\d)? ,即您所說的“零或一個”數字字符。 但是您真正想要的看起來像這樣:

/^[a-zA-Z\s\d\/]+$/

在這里,我們說的是“一個或多個”字母,空格,數字或斜杠(請注意,正斜杠必須使用反斜杠進行轉義)。

最后,您說要要求 “至少一位”數字。 這可以通過使用更高級的正則表達式構造(稱為“環視斷言”)來實現。 你要這個:

/^(?=.*\d)[a-zA-Z\s\d\/]+$/

特別是,這是一個積極的前瞻性斷言 ,您可以自己進行研究。 在沒有超前斷言的情況下,執行此操作的另一種方法是:

/^[a-zA-Z\s\d\/]*\d[a-zA-Z\s\d\/]*$/

這顯然要復雜得多,但是當您能夠理解這一點時,便知道您正處在理解正則表達式的道路上。 祝好運!

暫無
暫無

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

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