2016-09-09 81 views
0
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(/^\//,'') 

但同時,如果他們我怎麼刪除這兩個,在oner存在?

+0

使用或運算符:'/^\/| \/$/g' – 4castle

+0

嘗試了a.pathname.replace(/^\/| \/$ /,''),但它刪除了只有斜槓? –

+2

讓正則表達式替換所有匹配(而不僅僅是第一個匹配),使用全局'g'修飾符 – 4castle

回答

2

甲正則表達式文字等/^\/|\/$/g可用於與空字符串來替換,或者可能使用/^\/([^]*)\//(匹配/,那麼任何0+字符直到最後/捕獲斜線之間的內容)以替換爲$1

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

注:

  • ^\/ - 字符串的開始和/那裏
  • |一致 - 意味着OR
  • \/$ - 匹配的/在串
  • ([^]*)的端部 - 是一個捕獲組(...)捕獲0以上(*任何字符作爲[^]裝置沒有什麼
1

var a="/cat-dog-fish/"; 
 

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

 
console.log(d);

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