2010-04-08 32 views
4

我訪問這樣的樣式集合:地帶域名

var css = document.styleSheets[0]; 

它返回如。 http://www.mydomain.com/css/main.css

問題:如何剝離域名才能得到/css/main.css

+0

我忘了提及域名應該是可變的 - 所以沒有更換。 – Fuxi 2010-04-08 01:50:02

+0

查看我使用正則表達式的新答案,該答案可與任何域名一起使用。 – 2010-04-08 12:26:05

+0

請停止在標題中寫標籤。你已經在這裏差不多兩年了! – 2011-06-25 17:45:18

回答

-1
css = css.replace('http://www.mydomain.com', ''); 
0

如何:

css = document.styleSheets[0]; 
cssAry = css.split('/'); 

domain = cssAry[2]; 
path = '/' + cssAry[3] + '/' + cssAry[4]; 

這在技術上爲您提供您的域名和路徑。

6

這個正則表達式應該可以做到。它將替換任何使用空字符串找到的域名。同時還支持https://開頭

//css is currently equal to http://www.mydomain.com/css/main.css  
css = css.replace(/https?:\/\/[^\/]+/i, ""); 

這將返回/css/main.css

+0

簡單和乾淨,爲全局標誌添加使用它像css.replace(/ https?:\/\/[^\ /] +/ig,「」); @ Erikk-ross,請問您可以添加http和全球支持嗎? – 2017-10-10 13:25:52

1

您可以使用一個小技巧,通過創建一個<a> - 元素,然後將字符串設置到<a> - 元素的href,然後你必須一個Location object你可以從中獲取路徑名。

你既可以一個方法添加到字符串原型:

String.prototype.toLocation = function() { 
    var a = document.createElement('a'); 
    a.href = this; 
    return a; 
}; 

,並使用它像這樣:
css.toLocation().pathname

或使其成爲一個功能:

function toLocation(url) { 
    var a = document.createElement('a'); 
    a.href = url; 
    return a; 
}; 

和使用它是這樣的:
toLocation(css).pathname

這兩個都會輸出:"/css/main.css"