如何使用 JavaScript 验证 IP 地址186


在许多 web 应用中,验证用户提供的 IP 地址的格式是否正确非常重要。JavaScript 提供了一种简单的方法来执行此任务。

IP 地址格式

IPv4 地址由四个八位字节组成,每个字节表示该地址的某个部分。这些字节之间用点号分隔,例如 "192.168.1.1"。IPv6 地址由八个 16 位十六进制数组成,用冒号分隔,例如 "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"。

使用 JavaScript 验证 IP 地址

可以使用正则表达式来验证 IP 地址的格式。以下正则表达式匹配有效的 IPv4 地址:```javascript
/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/
```

以下正则表达式匹配有效的 IPv6 地址:```javascript
/^((([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4}|:))|(([0-9a-fA-F]{1,4}:){6}(:[0-9a-fA-F]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4})))|(([0-9a-fA-F]{1,4}:){5}(((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){4}(((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4})(((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){3}(((:[0-9a-fA-F]{1,4}){1,4})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){2}(((:[0-9a-fA-F]{1,4}){1,5})|((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){1}(((:[0-9a-fA-F]{1,4}){1,6})|((:[0-9a-fA-F]{1,4}){1,4})|((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(:(((:[0-9a-fA-F]{1,4}){1,7})|((:[0-9a-fA-F]{1,4}){1,5})|((:[0-9a-fA-F]{1,4}){1,4})|((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4})))))$/
```

要使用正则表达式验证 IP 地址,可以使用以下函数:```javascript
function isValidIP(ip) {
if (/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/.test(ip)) {
return true;
} else if (/^(([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4}|:))|(([0-9a-fA-F]{1,4}:){6}(:[0-9a-fA-F]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4})))|(([0-9a-fA-F]{1,4}:){5}(((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){4}(((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4})(((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){3}(((:[0-9a-fA-F]{1,4}){1,4})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})|(:[0-9a-fA-F]{1,4}))))|(([0-9a-fA-F]{1,4}:){2}(((:[0-9a-fA-F]{1,4}){1,5})|((:[0-9a-fA-F]{1,4}){1,3})|((:[0-9a-fA-F]{1,4}){1,2})|(:((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)((\.(25[

2025-02-11


上一篇:JavaScript AJAX POST 请求详解

下一篇:javascript中的树结构