该顶部投票答案在这里验证的IP地址( 这是一个正则表达式,所以自动不利的 ),如果你在一个字节4首或更多个零给它一个IP地址返回false。
请注意,它通过与3或更低,这在我看来,自动显示代码的气味,由于任意不一致(毕竟它不是基数为8,因此没有什么特别的底座10约3)。 然而,令人惊讶的是Apache的百科全书实用InetAddressValidator
也有这种行为(至少它仅使用了正则表达式分裂!)。
观察(使用的Scala REPL):
scala> new InetAddressValidator().isValidInet4Address("000.0.0.0")
res0: Boolean = true
scala> new InetAddressValidator().isValidInet4Address("0000.0.0.0")
res1: Boolean = false
现在, 这个答案 ,因为它的使用将返回true, parseInt
在一个循环中,这使得零的数字之间的任意区别。
因此,它是有效的? 如果它是有效的,那么这表明在Apache的百科全书库和正则表达式表示一个错误,如果它是无效,则请提供的东西的链接,证明了这一点 。