2013-03-18 43 views
0

我需要從文本框中輸入IP/DNS名稱。我正在尋找適用於IP的IP正則表達式。需要IP地址掩碼和DNS主機名正則表達式?

我現在用一個正則表達式:

/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/ 

這是工作0-255範圍。但允許無效的IP如:121.21.05.234.01其中有5個部分。

我需要一個正則表達式,將工作在所有情況下的象下面這樣:

10.2.22.1  - true 
123.123.123.123 - true 
123.123.023.12 - true 
12.23.12.0  - true 
121.21.05.234.01 - false 

也請爲我提供DNS表達。

+0

的'\ B'在字的邊界,你的模式匹配,其是'a-zA-Z0-9_'和任何不是那些字符的(有效)空白空間。第5個八位字節的點符合「任何不是那些」的規定,這就是爲什麼你的模式仍然匹配。請參閱sp00m的答案。 – 2013-03-18 13:16:27

回答

0

試試anchor你的正則表達式爲^$,這將使它匹配整個字符串。

0

您是否正在尋找一種方法來指定發生次數? 你可以用大括號來實現。 一個例子here

在你的情況,這會導致:

/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}\b/ 

(我加了\逃脫點,太)