supprimer les paramètres d'url avec javascript ou jquery

j'essaie d'utiliser l'api de données youtube pour générer une liste de lecture vidéo. Cependant, les urls vidéo nécessitent un format de youtube.com/watch?v=3sZOD3xKL0Y, mais ce que l'api génère est youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata. Donc ce que je dois faire est d'être en mesure de sélectionner tout après et y compris l'ampersand et de le supprimer de l'url. De toute façon pour ce faire avec javascript et une sorte d'expression régulière?

29
demandé sur mheavers 2011-01-11 00:59:34

8 réponses

Simple:

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

Modifié: cela supprimera tous les paramètres ou fragments de l'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);
}
30
répondu Jacob Relkin 2016-10-19 07:57:26

Ce qui me manque?

Pourquoi pas:

url.split('?')[0] 
30
répondu goldylucks 2015-01-04 23:12:35

Hmm... La recherche d'une meilleure façon... ici c'est

var onlyUrl = window.location.href.replace(window.location.search,'');
19
répondu hriziya 2014-01-06 09:15:59

Exemple:http://jsfiddle.net/SjrqF/

var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';

url = url.slice( 0, url.indexOf('&') );

ou:

Exemple:http://jsfiddle.net/SjrqF/1/

var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';

url = url.split( '&' )[0];
18
répondu user113716 2011-01-10 22:02:18
//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;     
}
5
répondu chozha rajan 2017-04-21 10:29:18

vous pouvez utiliser un RegEx pour correspondre à la valeur de v et construisez l'URL vous-même puisque vous savez que L'URL est youtube.com/watch?v=...

http://jsfiddle.net/akURz/

var url = 'http://youtube.com/watch?v=3sZOD3xKL0Y';
alert(url.match(/v\=([a-z0-9]+)/i));
1
répondu Christian Joudrey 2011-01-10 22:02:36

utilisez cette fonction:

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

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

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
1
répondu sidanmor 2017-08-17 12:17:29

Eh bien, j'utilise ceci:

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

ou:

    stripUrl(urlToStrip){
        return urlToStrip.split('?')[0].split('&')[0].split('#')[0];
    }
1
répondu sfratini 2018-01-28 01:41:21