2011-04-01 42 views
0

我哈瓦像搜索一個詞,它背後

mysite.net/home/index/page/XX 

的URL,而XX是任何數字取代一切。我需要更換XX並刪除可能位於XX後面的所有內容。所以我想通過將其替換爲數字來移除page/後面的所有內容。

有字符串處理了很多方法http://www.w3schools.com/jsref/jsref_obj_string.asp

我知道如何執行這一點,但我不知道要使用哪些方法。所以我最終得到了lastIndexOf("page/")。所以這個+1會給我取代字符串的起點。字符串的整個長度將是結束點。

任何想法?

+0

? – greggreg 2011-04-01 07:08:57

+0

是的只是取代頁面後面的所有內容/ – 2011-04-01 07:11:30

+0

你正在尋找的詞是'後'而不是'後'。 – 2011-04-01 07:12:08

回答

1

下面的代碼將這樣的伎倆,通過使用正則表達式:

"mysite.net/home/index/page/XX".replace(/\/page\/.*/, '/page/123') 
0

這不是一個直接的回答你的問題,但我解決這種問題的方式是讓服務器計算一個'基地url'(mysite.net/home/index/page/在你的情況),並在構建頁面時將其寫入一個js變量。

兩個不同的ASP.NET MVC版本(會有類似的東西,你可以在任何其他的框架做)這看起來是這樣的:

var baseUrl = '@ViewBag.BaseUrl'; 

var baseUrl = '<%: ViewData["BaseUrl"] %>'; 

這有大好處是頁面JS沒有開始知道URL的形成,所以如果你改變你的URL路由,你不會發現到處都有破損。

至少對於ASP.NET MVC,您可以使用框架路由API在服務器端生成基本URL。

1

我不明白你的問題,因爲你可能會發現你所需要的一切......

var yourURI = "mysite.net/home/index/page/XX"; 
var theDelimiter = "page/"; 
var yourNewIndex = "42"; 
var yourNewURI = null; 

var lastIndexOfDelimiter = yourURI.lastIndexOf(theDelimiter); 
if (lastIndexOfDelimiter != -1) 
{ 
    yourNewURI = yourURI.substr(0, lastIndexOfDelimiter + theDelimiter.length) + yourNewIndex; 
} 

這是你想要的嗎?

1
var url = "mysite.net/home/index/page/XX" 
return url.substr(-(url.length - (url.lastIndexOf("page/") + 5)))) 
要刪除一切至XX,然後用另一個號碼代替XX