如何使用 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中的树结构

JavaScript parseFloat() 函数详解:数值解析与陷阱规避
https://jb123.cn/javascript/67021.html

Perl 核心函数详解:高效编程的利器
https://jb123.cn/perl/67020.html

Perl正则表达式详解:深入理解^、s、和替换操作符
https://jb123.cn/perl/67019.html

Python GUI编程:Tkinter、PyQt、Kivy框架详解与实战
https://jb123.cn/python/67018.html

JavaScript明文安全及防护策略深度解析
https://jb123.cn/javascript/67017.html
热门文章

JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html

JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html

JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html

JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html

JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html