首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js验证ip地址

在JavaScript中验证IP地址可以通过正则表达式来实现。IPv4地址由四个0到255之间的数字组成,每个数字之间用点.分隔。以下是一个验证IPv4地址的正则表达式示例:

代码语言:txt
复制
function isValidIPv4(ip) {
  const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  return ipv4Regex.test(ip);
}

// 使用示例
console.log(isValidIPv4('192.168.1.1')); // 输出: true
console.log(isValidIPv4('256.1.1.1')); // 输出: false

解释

  • 25[0-5] 匹配250到255之间的数字。
  • 2[0-4][0-9] 匹配200到249之间的数字。
  • [01]?[0-9][0-9]? 匹配0到199之间的数字,其中[01]?表示0或1可以出现0次或1次,[0-9][0-9]?表示一个数字后面可以跟着0个或1个数字。

优势

  • 简洁:使用正则表达式可以简洁地验证IP地址格式。
  • 高效:正则表达式引擎通常经过优化,可以快速匹配字符串。

应用场景

  • 表单验证:在用户提交表单时验证输入的IP地址是否合法。
  • 网络请求:在发送网络请求前验证目标IP地址的格式。

注意事项

  • 这个正则表达式只验证IPv4地址的格式,不验证IP地址是否实际存在或可达。
  • 如果需要验证IPv6地址,需要使用不同的正则表达式。

扩展

如果需要同时验证IPv4和IPv6地址,可以使用以下正则表达式:

代码语言:txt
复制
function isValidIP(ip) {
  const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  const ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
  return ipv4Regex.test(ip) || ipv6Regex.test(ip);
}

// 使用示例
console.log(isValidIP('192.168.1.1')); // 输出: true
console.log(isValidIP('2001:0db8:85a3:0000:0000:8a2e:0370:7334')); // 输出: true
console.log(isValidIP('256.1.1.1')); // 输出: false

这个扩展的正则表达式可以同时验证IPv4和IPv6地址的格式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券