gpt4 book ai didi

javascript - 从正则表达式模式中删除 ips,js

转载 作者:行者123 更新时间:2023-11-29 20:45:41 24 4
gpt4 key购买 nike

你好,我有一个验证 url 的模式,它运行良好,但我想从 ip 号码中删除所有验证:

const pattern= /^(?:(?:https?):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

我试过像这样删除一些部分:

/^(?:(?:https?):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:\.\d{1,3}){2}){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

但我不确定这样好不好

最佳答案

您可以使用 IP regex 简单地删除所有 IP 正则表达式匹配部分 ( (?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4])) )图案,(?: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]?)){3} :

/^(?:https?:\/\/)?(?:(?: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]?)){3}|(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

参见 regex demo

详情

  • ^ - 字符串的开始
    • (?:https?:\/\/)? - 一个可选的字符串匹配
    • https? - httphttps
    • :\/\/ - 一个 ://子串
    • (?: - 容器组的开始:
    • (?: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]?)){3} - IPv4 模式
    • | - 或者
      • (?:[a-z\u00a1-\uffff0-9]-*)* - 在 ¡ 之间重复 0 次以上的字母、数字或字符(索引 161)和``(索引 65535)后跟 0+ 个连字符
      • [a-z\u00a1-\uffff0-9]+ - ¡ 之间的 1+ 个字母、数字或字符(索引 161)和``(索引 65535)
      • (?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)* - 零次或多次重复点,后跟上述两个子模式
      • (?:\.[a-z\u00a1-\uffff]{2,}) - 在 ¡ 之间的点后跟 2 次或多次重复的字母、数字或字符(索引 161)和``(索引 65535)
    • ) - 容器组结束
    • (?::\d{2,5})? - 以 : 开头的可选子字符串然后是 2 到 5 位数字
    • (?:\/\S*)? - 以 / 开头的可选子字符串然后是 0+ 个非空白字符
    • $ - 字符串结束。

关于javascript - 从正则表达式模式中删除 ips,js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54666479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com