You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECMAScript正则匹配端口,避免误匹配时间的问题求助

修正后的正则表达式及说明

针对你的需求,修正后的正则表达式可精准匹配端口格式(包括独立的:端口和IPv4后的端口),同时避免误匹配时间格式:

const portRegex = /(?<=^|[^:\d]|\.\d):(?:[1-9]\d{0,4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])(?![:\d])/g;

关键修正点说明

  • 规避时间误匹配:通过正向后行断言 (?<=^|[^:\d]|\.\d) 限定冒号的前置场景:
    • 字符串开头(匹配独立的:端口)
    • 非冒号、非数字的字符(匹配类似xyz:8080的场景)
    • 点+数字(匹配IPv4后的端口,比如192.168.1.1:80)
  • 精准端口范围:用(?:[1-9]\d{0,4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])替代原有的\d{1,5},仅匹配1-65535之间的合法端口,排除0或超出范围的无效数字。
  • 防止部分匹配:通过负向前行断言(?![:\d])确保端口数字后不会紧跟冒号或其他数字,避免匹配不完整的端口片段。

测试示例

  • 匹配::443、192.168.1.1:80、api.example.com:8080
  • 不匹配:12:34(时间格式)、0:123(无效端口前缀)、abc:65536(超出端口范围)

内容的提问来源于stack exchange,提问作者Mario Jost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:03:28