如何在javascript

时间:2018-07-23 11:08:07

标签: ipv6 prefix subnet

我正在尝试验证某些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::

2 个答案:

答案 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}|::)$