我正在尝试验证某些IPV6网络前缀以创建子网。我无法使用JavaScript正则表达式来验证网络前缀。谁能帮忙。
某些网络前缀的格式如下
2001:0000:1234:0000
2001:0:1234:0
3ffe:0b00::
3ffe:b00::1
FF02::
FF02::1
::1
::
::ffff:192
3ffe:0b00:0000:0001
FF02:0000:0000:0000
FF02::
ff02::1
fe80::
答案 0 :(得分:0)
现在,我可以使用下面的代码来验证网络前缀。
var valueToTest=document.getElementById('networkprefix').value;
if ( /^((?:[0-9A-Fa-f]{1,4}))*:((?:[0-9A-Fa-f]{1,4}))*:((?:[0-9A-Fa-f]{1,4}))*:((?:[0-9A-Fa-f]{1,4}))$/g.test(valueToTest))
{
alert("Valid Network Prefix");
}
else
{
alert("InValid Network Prefix");
}
答案 1 :(得分:0)
您提供的答案不足以正确验证用于文本表示的所有有效IPv6地址格式。
如果要捕获任何有效的RFC 4291, IP Version 6 Addressing Architecture格式,则需要一个正则表达式,例如:
^(?:(?:(?:[A-F0-9]{1,4}:){5}[A-F0-9]{1,4}|(?:[A-F0-9]{1,4}:){4}:[A-F0-9]{1,4}|(?:[A-F0-9]{1,4}:){3}(?::[A-F0-9]{1,4}){1,2}|(?:[A-F0-9]{1,4}:){2}(?::[A-F0-9]{1,4}){1,3}|[A-F0-9]{1,4}:(?::[A-F0-9]{1,4}){1,4}|(?:[A-F0-9]{1,4}:){1,5}|:(?::[A-F0-9]{1,4}){1,5}|:):(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}|(?:[A-F0-9]{1,4}:){6}:[A-F0-9]{1,4}|(?:[A-F0-9]{1,4}:){5}(?::[A-F0-9]{1,4}){1,2}|(?:[A-F0-9]{1,4}:){4}(?::[A-F0-9]{1,4}){1,3}|(?:[A-F0-9]{1,4}:){3}(?::[A-F0-9]{1,4}){1,4}|(?:[A-F0-9]{1,4}:){2}(?::[A-F0-9]{1,4}){1,5}|[A-F0-9]{1,4}:(?::[A-F0-9]{1,4}){1,6}|(?:[A-F0-9]{1,4}:){1,7}:|:(?::[A-F0-9]{1,4}){1,7}|::)$