我想替换部分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将只匹配最后一个破折号,因为它搜索的后续字符是除了另一个破折号之外的所有字符,后面跟着行尾($
)。
-
匹配破折号(-
)字符[^-]*
匹配所有内容,除了另一个破折号$
在破折号和非破折号之后,必须有行尾