2010-12-24 123 views
1

我有一個可以分爲3個部分的URL,我想要中間的一個。Javascript - 使用str.replace()清理字符串

的URL是這樣的

http://www.site.com/place?siteurl=http://www.thisIsWhatIwant.com/bla/bla/ & XXX

XXX指URL繼續,可能有很多的字符,包括%,圓括號,其他符號,等號等...

我想要什麼是粗體。換句話說,爲了擺脫siteurl =(包括等號)上的等號之前的所有內容,並且除去之後的第一個&號之後的所有內容,包括&符號......因此,在清理之後URL它只是變成:

http://www.thisIsWhatIwant.com/bla/bla/

我怎麼做,與JavaScript的str.replace()?

在此先感謝

回答

1

你不想在這裏使用String.replace,使用String.split

if(window.location.search.indexOf('siteurl') > -1) { 
    var siteurl = window.location.search.split('siteurl=')[1]; 
    siteurl = siteurl.substring(0, siteurl.indexOf('&')); 
    //do something with siteurl... 
} else { 
    //siteurl is not in the URL. 
} 
+0

OP不想在第一個「&」之後做任何事情。 – 2010-12-24 01:15:57

2

而不是刪除不想要的文本,可以提取文本,你想要使用String.match()

var s = "http://www.site.com/place?siteurl=http://www.thisIsWhatIwant.com/bla/bla/&XXX"; 
var middle = s.match(/siteurl\=(.*?)\&/i)[1];