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/