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?
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);
}
Qu'est-ce que je rate?
Pourquoi pas:
url.split('?')[0]
Hmm ... Vous cherchez un meilleur moyen ... le voici
var onlyUrl = window.location.href.replace(window.location.search,'');
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];
//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;
}
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];
}
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 = ...
var url = 'http://youtube.com/watch?v=3sZOD3xKL0Y';
alert(url.match(/v\=([a-z0-9]+)/i));
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
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 :-)
Cela a fonctionné pour moi:
window.location.replace(window.location.pathname)