gpt4 book ai didi

JavaScript 正则表达式 : Is there a way to match slash after slash char in URL without negative lookbehind?

转载 作者:行者123 更新时间:2023-11-30 09:18:53 25 4
gpt4 key购买 nike

我正在尝试匹配 url 中不属于协议(protocol)或查询字符串一部分的斜杠后跟斜杠。

是否有任何其他方法可以使用 REGEX 来执行此操作,但由于并非所有浏览器都支持它,因此无需回顾?

我的例子:

const urls = `
https://asdf.com//asdf//asdf
http://asdf.com//asdf//asdf
ftp://asdf.com//asdf//asdf
//asdf.com//asdf//asdf
//asdf.com//asdf//asdf?test=//
z39.50s://asdf//
`.replace(/(?<!(^[\w\d-.]{2,}\:|^|\?.*))\/(?=\/)/gim, '');
console.log(urls);

最佳答案

你可以使用

.replace(/^(\S*?\/\/)|(\?.*)$|(\/)+/g, '$1$2$3')

参见 this regex demo

详情

  • ^(\S*?\/\/) - 第 1 组(稍后用替换模式中的 $1 引用):0 个或多个非空白字符, 尽可能少,从字符串的开始,到第一个 //
  • | - 或者
  • (\?.*)$ - 第 2 组 ($2):? 字符和字符串的其余部分
  • | - 或者
  • (\/)+ - 第 3 组 ($3) 捕获单个 / 字符,1 次或多次(每次捕获 / 将覆盖组内存缓冲区中的前一个,因为它是“repeated capturing group”)

关于JavaScript 正则表达式 : Is there a way to match slash after slash char in URL without negative lookbehind?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125198/

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