2016-06-08 49 views
-1

我是新來的正則表達式。我有一個地址字段,並且此地址字段應該接受-/作爲分隔符,以及當它作爲最後一個字符出現時的句號(.)。帶連字符或反斜線分隔符的地址

這些應該被接受:

A-8/1

A/1/B

testaddress

但它不應該接受所有其他特殊字符等比這兩個:-/(和最後一站:.)。此外,斜線或連字符不應連續,也不應出現在地址的開頭或結尾。此外,地址是美國英語,因此不應允許使用重音字母。

我使用下面的正則表達式:

^\w+(?:[\/,-]\w+)*.{0,1}$ 

但問題是,它是接受所有其他特殊字符。

我應該如何糾正我的正則表達式?

+0

'^ \ w +(?:[/ - ] \ w +)* $' – anubhava

+0

我收到錯誤/未轉義的分隔符。我認爲它應該是 ^ \ w +(?:[\/- ] \ w +)* $ – Arat

+0

更簡單:'([\ w \/- ] +)' – sideroxylon

回答

0

有幾種規格的缺失,但這裏是一個正則表達式,你可以使用:

/^([a-z0-9]+\s*[-\/]?\s*)*[a-z0-9]+\.?$/i 

i修改使得比賽不區分大小寫。

Regex tester

如果你沒有在分離器的兩側接受的空間,並且不接受重複的空間,然後就變成:

^([a-z0-9]+[-\/\s]?)*[a-z0-9]+\.?$ 

Regex tester

+0

謝謝@trincot – Arat

相關問題