如何确定字符串是否为IP地址?无论是IPv4还是IPv6?
什么是最少和最多的字符?
我认为这将是一个正则表达式的答案.
在.NET中有一个IPAddress类型,它有一个方便的方法TryParse.
例:
if(System.Net.IPAddress.TryParse(PossibleIPAddress, validatedIPAddress)){ //validatedIPAddress is good } // or more simply: bool IsValidIPAddress(string possibleIP){ return System.Net.IPAddress.TryParse(PossibleIPAddress, null) }
我以前做过这个,但我喜欢Raymond Chen的帖子:
http://blogs.msdn.com/oldnewthing/archive/2006/05/22/603788.aspx
他基本上主张将正则表达式用于他们擅长的东西:解析出令牌.然后评估结果.他的榜样:
function isDottedIPv4(s) { var match = s.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); return match != null && match[1] <= 255 && match[2] <= 255 && match[3] <= 255 && match[4] <= 255; }
这样看起来容易得多,并且知道它应该做什么.