如何用正则判断ipv4和ipv6
时间: 2023-06-04 11:09:04 浏览: 247
IPv4可以使用以下正则表达式进行匹配:
```regex
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
```
IPv6可以使用以下正则表达式进行匹配:
```regex
^([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}$
```
注意:这只是判断格式是否正确,并不保证地址的合法性。
相关问题
正则校验IPv4 IPv6
以下是正则校验IPv4和IPv6的示例:
1. 正则校验IPv4:
```javascript
const IPV4Single = (ip) => {
const IPV4 = /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
return IPV4.test(ip); // 输出 校验通过:true 校验出错:false
};
```
2. 正则校验IPv6:
```javascript
const IPV6Single = (ip) => {
const IPV6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
return IPV6.test(ip); // 输出 校验通过:true 校验出错:false
};
```
js正则同时匹配ipv4和ipv6
以下是一个例子,可以同时匹配IPv4和IPv6地址:
```javascript
// 匹配IPv4地址
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
// 匹配IPv6地址
const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
// 匹配IPv4和IPv6地址
const ipRegex = new RegExp(`(${ipv4Regex.source})|(${ipv6Regex.source})`);
// 测试
console.log(ipRegex.test('192.168.1.1')); // true
console.log(ipRegex.test('2001:0db8:85a3:0000:0000:8a2e:0370:7334')); // true
console.log(ipRegex.test('example.com')); // false
```