web-dev-qa-db-fra.com

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 URL de la 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, c'est être capable de tout sélectionner après et incluant l'esperluette et de le supprimer de l'URL. Y a-t-il un moyen de faire cela avec javascript et une sorte d'expression régulière?

30
mheavers

Simple:

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

Modifié: cela supprimera tous les paramètres ou fragments d'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);
}
34
Jacob Relkin

Qu'est-ce que je rate?

Pourquoi pas: 

url.split('?')[0] 
37
goldylucks

Hmm ... Vous cherchez un meilleur moyen ... le voici

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

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
user113716
//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
chozha rajan

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
sfratini

Vous pouvez utiliser un RegEx pour faire correspondre la valeur de v et créer vous-même l'URL 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
Christian Joudrey

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'));

Si vous voulez toutes les pièces href, utilisez ceci:

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
sidanmor

Par exemple nous avons:

example.com/list/search?q=Somethink

Et vous devez utiliser la variable url comme ceci par window.location.href :

example.com/list/edit

De l'URL:

example.com/list/search?q=Somethink
example.com/list/
var url = (window.location.href);
    url = url.split('/search')[0];
    url = (url + '/edit');

C'est une solution simple :-)

0
Adrian

Cela a fonctionné pour moi:

window.location.replace(window.location.pathname)
0