带有可选端口的 ip 地址 v4 的正则表达式

Regex for ip addres v4 with optional port

我在检测带有可选端口的 ip 地址 v4 模式的输入时遇到问题

我只找到了 ip 地址 v4 的模式

这是仅适用于 ipv4 的代码

/\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b/

我希望正则表达式可以读取,例如: 192.168.11.11 或 192.168.11.11:8000

就目前而言,您的正则表达式将匹配 IP 地址。如果您还希望它与端口匹配,只需在最后一个单词边界之前添加一个可选的 non-capturing 以获取 : 后跟 0-4 数字:

(?::\d{0,4})?\b

这将创建以下内容:

/\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)(?::\d{0,4})?\b/

与您的两个输入匹配:

const regex = /\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)(?::\d{0,4})?\b/;

console.log(regex.test('192.168.11.11'));
console.log(regex.test('192.168.11.11:8000'));