Regex -替换url的一部分



我想替换部分url:

Origin-> https://example.u-test.com/ex-2<br>

Destination-> https://example.u-test.com/ex <br>

所以我想要删除"-"之后的部分但只能在第一个斜杠之后的第二部分。

对于url.replace(/ *-[^.]*. */g, "."),我得到:

https://example.u.com/ex-2

我想删除"-2"在ex之后,不是"-test";

正确的正则表达式是什么?

您可以使用URL接口。它允许您轻松地读取和修改给定URL的不同组件。

const url =  new URL("https://example.u-test.com/ex-2");
const domain = url.hostname;
const pathname = url.pathname;
const part = pathname.split("-")[0];
console.log(domain + part);

如果你绝对想用正则表达式做这件事:

const url = "https://example.u-test.com/ex-2"
const result = url.replace(/-[^-]*$/g, "")
console.log(result)

解释:如果要删除最后一个斜杠或破折号之后的部分,则应从该点开始匹配。上面的正则表达式从行中最后一个破折号(-)字符开始匹配。Regex将只匹配最后一个破折号,因为它搜索的后续字符是除了另一个破折号之外的所有字符,后面跟着行尾($)。

  • -匹配破折号(-)字符
  • [^-]*匹配所有内容,除了另一个破折号
  • $在破折号和非破折号之后,必须有行尾

相关内容

  • 没有找到相关文章

最新更新