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