2011-01-10 16 views
25

Ich versuche, die Youtube-Daten API zu verwenden, um eine Video-Playlist zu generieren. Die Video-URLs benötigen jedoch ein Format von youtube.com/watch?v=3sZOD3xKL0Y, aber was die API generiert, ist youtube.com/watch?v=3sZOD3xKL0Y & feature = youtube_gdata. Also, was ich tun muss, ist in der Lage, alles nach und einschließlich des kaufmännischen Und auszuwählen und es von der URL zu entfernen. Irgendeine Möglichkeit, dies mit Javascript und einer Art regulärem Ausdruck zu tun?URL-Parameter mit Javascript oder Jquery entfernen

+0

Werfen Sie einen Blick auf diesen Beitrag: http://stackoverflow.com/questions/738351/recommendation-for-javascript-url-manipulation-library-api/3215670 # 3215670 –

+0

möglich duplikat von [querystring encoding eines javascript-objekts] (http://stackoverflow.com/question s/1714786/querystring-encoding-of-javascript-objekt) –

Antwort

26

Ganz einfach:

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

Modifiziert: diese werden alle Parameter oder Fragmente von url entfernen

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

Wow. Das war blitzschnell. Ich entdeckte tatsächlich, dass ich einen anderen Knoten aus dem Feed ziehen muss, das ist einzigartig.Wie würde extrahieren wir die ID nur kurz nach Video geführt: in diesem Tag - tag: youtube.com 2008: Video: 3sZOD3xKL0Y – mheavers

+2

ich in der einfachen Antwort denken Sie eingeben gemeint haben: var new_url = old_url.substring (0 , old_url.indexOf ('?')); Der Ampersand wird nicht funktionieren :) – theadam

+0

Can u von einem Szenario denken, wo der [einfachste Weg] (https://stackoverflow.com/questions/4651990/remove-url-parameters-with-javascript-or-jquery/27771398# 27771398) wird nicht funktionieren? – goldylucks

1

Sie einen regulären Ausdruck verwenden könnte den Wert von v und bauen die URL selbst anzupassen, da Sie die URL kennen, ist 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

Hmm ... der Suche nach besseren Weg ... hier ist es

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

Das ist mein speziellen Fall ist die Seite ohne die Parameter neu zu laden: window.location.assign (window.location.href.replace (window.location.search, ‚‘)); – gtamborero

21

Was fehlt mir?

Warum nicht:

url.split('?')[0] 
+0

Funktioniert perfekt! –

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

Mit dieser Funktion:

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

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

Wenn Sie alle href Teile möchten, verwenden Sie diese:

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

Nun, ich bin mit dieser:

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

oder:

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