我无法检测到带有可选端口的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
答案 0 :(得分:0)
按原样,您的正则表达式将匹配IP地址。如果您还希望它与端口匹配,则只需在最终单词边界之前添加可选的非捕获字符即可选择:
,后接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'));