pek*_*pek 8 regex language-agnostic validation
如何确定字符串是否为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)
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我以前做过这个,但我喜欢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;
}
Run Code Online (Sandbox Code Playgroud)
这样看起来容易得多,并且知道它应该做什么.
对于 IPv4,您可以使用此正则表达式。
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
Run Code Online (Sandbox Code Playgroud)
它看起来相当复杂,但它的工作原理是将每个四边形限制为数字 0-255。
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |