var url = document.referrer;
var a=document.createElement('a');
a.href=url;
var path = a.pathname;


假设路径是这样的:

/cat-dog-fish/


我想删除前斜杠和后斜杠(如果存在),否则什么也不做。

我可以这样做(删除斜杠):

a.pathname.replace(/\/$/,'')


或这个(去除斜线)

a.pathname.replace(/^\//,'')


但是,如果存在的话,我该如何一次全部删除它们呢?

最佳答案

/^\/|\/$/g这样的正则表达式文字可以用来替换为空字符串,或者您可以使用/^\/([^]*)\//(匹配/,那么直到最后一个/的0+字符都将捕获斜线之间的内容)替换为$1



var s = "/cat-dog-fish/";
console.log(s.replace(/^\/|\/$/g, ''));
console.log(s.replace(/^\/([^]*)\/$/, '$1'));





注意:


^\/-匹配字符串的开头和一个/
|-表示或
\/$-匹配字符串末尾的/
([^]*)-是捕获组(...),它捕获0个或更多(*)任何字符,因为[^]表示没有字符。

关于javascript - 在match()中应用两个正则表达式规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39404567/

10-12 05:27