使javascript ip地址正则表达式拒绝数字0
难以确定如何使其拒绝值:使javascript ip地址正则表达式拒绝数字0,javascript,regex,Javascript,Regex,难以确定如何使其拒绝值: ^(?:(25(?!0)[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\.(?!$)|$)){4}$ 最后一个[0-9]术语应该是[1-9] 此外,要在地址的数字分量之间要求一个句点,句点应该转义:\.如果您不打算禁止250作为一个分量,25(?!0)应该是25 例如: 0.x.x.x 0.0.0.0 0.x.x.0 不管它值多少钱,我认为一个只使用正则表达式的方法(即使可能)来解决这个问题太复杂了。最好将其分解为条
^(?:(25(?!0)[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\.(?!$)|$)){4}$
最后一个
[0-9]
术语应该是[1-9]
此外,要在地址的数字分量之间要求一个句点,句点
应该转义:\.
如果您不打算禁止250
作为一个分量,25(?!0)
应该是25
例如:
0.x.x.x
0.0.0.0
0.x.x.0
不管它值多少钱,我认为一个只使用正则表达式的方法(即使可能)来解决这个问题太复杂了。最好将其分解为条件并消除无效的条件。在句点上拆分字符串并验证每个数字不是更容易维护吗?此外,如果0.x.x.x被拒绝,那么0.0.0.0和0.x.x.0也被隐式拒绝如果您的意思是不只是点之间的零,可能
^(?[0-9.]*\b0{1,3}\b).*
并用匹配的ip号替换。*
^(?:(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])(\.(?!$)|$)){4}$