在match()中应用两个正则表达式规则

时间:2016-09-09 05:41:56

标签: javascript regex

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(/^\//,'')

但是,如果它们存在,如何同时删除它们?

2 个答案:

答案 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'),'');