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(/^\//,'')
但是,如果它们存在,如何同时删除它们?
答案 0 :(得分:2)
像/^\/|\/$/g
这样的正则表达式字面值可用于替换为空字符串,或者您可以使用/^\/([^]*)\//
(匹配/
,然后使用任何0 +字符到最后{{1}捕获斜杠之间的内容)替换为/
:
$1
注意:
var s = "/cat-dog-fish/";
console.log(s.replace(/^\/|\/$/g, ''));
console.log(s.replace(/^\/([^]*)\/$/, '$1'));
- 匹配字符串的开头,并在那里匹配^\/
/
- 表示 OR |
- 匹配字符串\/$
/
- 是一个捕获组([^]*)
,可捕获0个或多个((...)
)任何字符,因为*
表示不是没什么 答案 1 :(得分:1)
var a="/cat-dog-fish/";
var d = a.replace(new RegExp("(^\/|\/$)",'g'),'');
console.log(d);

a.pathname.replace(new RegExp("(^\/|\/$)",'g'),'');