我有字符串格式ipaddress字符串幫助:要求在驗證使用正則表達式
172.60.136.145,172.60.136.146,172.60.136.147,........
,我需要幫助在使用正則表達式
我有字符串格式ipaddress字符串幫助:要求在驗證使用正則表達式
172.60.136.145,172.60.136.146,172.60.136.147,........
,我需要幫助在使用正則表達式
字符串中驗證IpAddresses嘗試用:
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
這隻會驗證一個'ipaddress'不是嗎?作爲例子包含一個字符串與許多,逗號分離。此外,這些數字可能是任何無效的值 – 2011-04-11 07:26:36
'999.999.999.999' – KingCrunch 2011-04-11 07:26:53
是的......有沒有辦法處理逗號分離的ip地址 – 2011-04-11 07:30:11
我不知道正則表達式是您最好的選擇這裏的IP地址纔有效,如果數字是254或更少
我會在逗號分割字符串,然後將它們中的每一個按句點分割。我會檢查是否有4個部分,每個部分可以轉換爲254或更少的數字。
像這樣未經測試的僞代碼
string[] addresses = myString.Split(",");
foreach(string address in addresses)
{
string[] numbers = address.Split(".");
if (numbers.Length==4)
{
Foreach(string number in numbers)
{
// need to check that the last number is not a zero as well - not shown here
int value = Convert.ToInt32(number);
if (value<0 && value>254)
{
//invalid
}
}
}
else
{
//invalid
}
}
有可能,你可以在你的語言使用,以幫助這一類,但你不說,它是什麼語言。你可以在C#中做到這一點:
string[] addresses = myString.Split(",");
foreach(string address in addresses)
{
IpAddress ipAddress;
if (!IpAddress.TryParse(address, out ipAddress))
{
//invalid
}
}
,如果你只是想無效問卷,你可以這樣做:
IPAddress ipAddress;
string[] addresses = myString.Split (",");
foreach (string address in addresses.Where (address => !IPAddress.TryParse (address, out ipAddress)))
{
//all elements in this loop will be invalid entries
// remove the '!' to get only the valid ones
}
對於具體的如上述
172\.60\.136\.[0-9]{1-3}
其指甲它專門到範圍從172.60.136.0到999
當然,這不包括有效的IP,這將允許17 2.60.136.0或172.60.136.999
(0?0?[1-9]|0?[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])(\\.(0?0?[0-9]|0?[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])){2}(\\.(0?0?[1-9]|0?[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))
是否測試的IP是有效的,它允許1.0.0.1,通過254.254.254.254,不會允許任何以.0等
+1用於提供正則表達式作爲OP請求。一個噩夢的位雖然 – 2011-04-11 07:42:25
是啊,它有點一口。但是爲了得到這樣一個事實,即0可以處於中間狀態,因爲10.0.0.1非常有效,但0.xxx不是xxx0等,並且在上述情況下允許鍵入010.000.000.001的人煩人... – BugFinder 2011-04-11 07:47:49
結束在PHP:
$tmp = explode(',', $ips);
$tmp = array_map('ip2long', $tmp);
if (array_search(false, $tmp, true) !== false) {
// at least one ip is invalid
}
這種語言的說明可能會幫助未來的人... – 2011-04-11 07:43:10
沒有注意到,它沒有在問題中指定。感謝提示。 – KingCrunch 2011-04-11 07:43:55
某些表示您正在使用的語言可能會有幫助。 – 2011-04-11 07:48:11