2011-10-06 66 views
2

我有一對夫婦的URL的,我需要得到的URI獲取使用Javascript

最後一部分的特定部分。如果我有網址www.test.co/index.php/government-printer-sales.html我只需要從獲得government一個URL的特定部分網址。所有網址都在相同的結構,所以如果我有www.test.co/index.php/management-fees.html我需要獲得management

我嘗試以下

var str = document.URL.split('/'); 
var type = str[5].split('-',1); 

這給了我一些成績的話,但我敢肯定有一個更好的辦法。如果有反正我可以從eiter的mootools獲得此或只是簡單的JavaScript

+0

這是真正的網址嗎?如果只有2個斜槓,那麼爲什麼要訪問分割字符串的索引「5」? – pimvdb

+0

@pimvdb - 只是例子,可以有更多的兩個破折號 – Roland

回答

3

您可以使用正則表達式的最後一個斜槓之後和第一個破折號前拉出字符串:

var regex = /\/([^/\-]+)[^/]*$/; 
var matches = regex.exec('www.test.co/index.php/government-printer-sales.html'); 
var type = matches[1]; // government 
3

你可以看看here然後here,然後檢查該代碼:

var myString = "www.test.co/index.php/government-printer-sales.html"; 
var myRegexp = /(www.test.co\/index.php\/)(\w+)-(.)*/g; 
var match = myRegexp.exec(myString); 
alert(match); 
3

接頭是一個負數通過作爲第一個參數將創建與來自所述陣列的末端計數元素的新陣列的巨大作用。

document.URL 
> "http://stackoverflow.com/questions/7671441/getting-a-specific-part-of-a-url-using-javascript" 

document.URL.split('/').splice(-1)[0].split('-')[0] 
> "getting" 

這類似於Python的列表拼接LST [: - 1]

2

試試這個:

var type = window.location.pathname.match(/index.php\/([^-]+)(?:-)/)[1]; 

它搜索以下index.php/排除連字符的任何字符,但隨後單連字符並獲取之間的值。