2011-01-10 106 views
25

我試圖使用YouTube數據api來生成視頻播放列表。但是,視頻網址需要youtube.com/watch?v=3sZOD3xKL0Y格式,但api生成的內容是youtube.com/watch?v=3sZOD3xKL0Y & feature = youtube_gdata。因此,我需要做的是能夠選擇包含&符號之後的所有內容,並將其從網址中移除。任何方式與JavaScript和某種正則表達式做到這一點?使用javascript或jquery刪除url參數

+0

看看這篇文章:http://stackoverflow.com/questions/738351/javascript-url-manipulation-library-api/3215670#3215670 – 2011-09-06 23:21:04

+0

[javascript對象的查詢字符串編碼]的可能重複(http://stackoverflow.com/question s/1714786/querystring -a-javascript-object的編碼) – 2013-11-15 18:19:10

回答

26

簡單:

var new_url = old_url.substring(0, old_url.indexOf('?')); 

修改: 這會從URL中刪除所有參數或片段

var oldURL = [YOUR_URL_TO_REMOVE_PARAMS] 
var index = 0; 
var newURL = oldURL; 
index = oldURL.indexOf('?'); 
if(index == -1){ 
    index = oldURL.indexOf('#'); 
} 
if(index != -1){ 
    newURL = oldURL.substring(0, index); 
} 
+0

哇。這閃電很快。實際上,我發現我需要從Feed中提取不同的節點,這是獨一無二的。我將如何提取只是在視頻後傳遞的ID:在這個標籤 - 標籤:youtube.com,2008:視頻:3sZOD3xKL0Y – mheavers 2011-01-10 22:04:41

+2

我認爲在你打算輸入的簡單答案: var new_url = old_url.substring(0 ,old_url.indexOf('?')); &符不會工作:) – theadam 2015-01-09 11:33:29

1

你可以使用正則表達式匹配的v價值,並建立自己的網址,因爲你知道這個網址是youtube.com/watch?v = ...

http://jsfiddle.net/akURz/

var url = 'http://youtube.com/watch?v=3sZOD3xKL0Y'; 
alert(url.match(/v\=([a-z0-9]+)/i)); 
16

嗯......尋找更好的方式...這裏是

var onlyUrl = window.location.href.replace(window.location.search,''); 
21

我錯過了什麼?

爲什麼不:

url.split('?')[0] 
2
//user113716 code is working but i altered as below. it will work if your URL contain "?" mark or not 
//replace URL in browser 
if(window.location.href.indexOf("?") > -1) { 
    var newUrl = refineUrl(); 
    window.history.pushState("object or string", "Title", "/"+newUrl); 
} 

function refineUrl() 
{ 
    //get full url 
    var url = window.location.href; 
    //get url after/ 
    var value = url = url.slice(0, url.indexOf('?')); 
    //get the part after before ? 
    value = value.replace('@System.Web.Configuration.WebConfigurationManager.AppSettings["BaseURL"]',''); 
    return value;  
} 
0

使用此功能:

var getCleanUrl = function(url) { 
 
    return url.replace(/#.*$/, '').replace(/\?.*$/, ''); 
 
}; 
 

 
// get rid of hash and params 
 
console.log(getCleanUrl('https://sidanmor.com/?firstname=idan&lastname=mor'));

如果你希望所有的HREF部分,使用:

var url = document.createElement('a'); 
 
url.href = 'https://developer.mozilla.org/en-US/search?q=URL#search-results-close-container'; 
 

 
console.log(url.href); // https://developer.mozilla.org/en-US/search?q=URL#search-results-close-container 
 
console.log(url.protocol); // https: 
 
console.log(url.host); // developer.mozilla.org 
 
console.log(url.hostname); // developer.mozilla.org 
 
console.log(url.port); // (blank - https assumes port 443) 
 
console.log(url.pathname); // /en-US/search 
 
console.log(url.search); // ?q=URL 
 
console.log(url.hash); // #search-results-close-container 
 
console.log(url.origin); // https://developer.mozilla.org

0

嗯,我用這:

stripUrl(urlToStrip){ 
     let stripped = urlToStrip.split('?')[0]; 
     stripped = stripped.split('&')[0]; 
     stripped = stripped.split('#')[0]; 
     return stripped; 
    } 

或:

stripUrl(urlToStrip){ 
     return urlToStrip.split('?')[0].split('&')[0].split('#')[0]; 
    }