Próbuję użyć interfejsu API danych youtube do wygenerowania listy odtwarzania wideo. Jednak adresy URL wideo wymagają formatu strony youtube.com/watch?v=3sZOD3xKL0Y, ale generowany przez nią interfejs to youtube.com/watch?v=3sZOD3xKL0Y & feature = youtube_gdata. To, co muszę zrobić, to móc wybrać wszystko po i włączając w to znak ampersand i usunąć go z adresu URL. W jaki sposób można to zrobić za pomocą javascript i pewnego rodzaju wyrażenia regularnego?Usuwanie parametrów adresu URL za pomocą javascript lub jquery
Odpowiedz
prosty:
var new_url = old_url.substring(0, old_url.indexOf('?'));
modyfikacja: to usunięcie wszystkich parametrów lub fragmenty z 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);
}
Wow. To było błyskawicznie szybkie. W rzeczywistości odkryłem, że muszę pobrać inny węzeł z kanału, co jest wyjątkowe.Jak wyodrębnić tylko identyfikator przekazany tuż po wideo: w tym tagu - tag: youtube.com, 2008: wideo: 3sZOD3xKL0Y – mheavers
Myślę, że w prostej odpowiedzi masz zamiar wpisać: var new_url = old_url.substring (0) , old_url.indexOf ("?")); Znak ampersand nie zadziała :) – theadam
Można myśleć o scenariuszu, w którym [najprostszy sposób] (https://stackoverflow.com/questions/4651990/remove-url-parameters-with-javascript-or-jquery/27771398# 27771398) nie będzie działać? – goldylucks
przykład:http://jsfiddle.net/SjrqF/
var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';
url = url.slice(0, url.indexOf('&'));
czyli
Przykład:http://jsfiddle.net/SjrqF/1/
var url = 'youtube.com/watch?v=3sZOD3xKL0Y&feature=youtube_gdata';
url = url.split('&')[0];
Można użyć wyrażenia regularnego, aby dopasować wartość v
i budować adres URL siebie, ponieważ wiesz URL jest youtube.com/watch?v = ...
var url = 'http://youtube.com/watch?v=3sZOD3xKL0Y';
alert(url.match(/v\=([a-z0-9]+)/i));
Hmm ... Patrząc na lepszej drodze ... tutaj jest
var onlyUrl = window.location.href.replace(window.location.search,'');
To jest mój szczególny przypadek, aby ponownie załadować stronę bez parametrów: window.location.assign (window.location.href.replace (window.location.search, '')); – gtamborero
Czego mi brakuje?
Dlaczego nie:
url.split('?')[0]
Działa idealnie dobrze! –
//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;
}
Użyj tej funkcji:
var getCleanUrl = function(url) {
return url.replace(/#.*$/, '').replace(/\?.*$/, '');
};
// get rid of hash and params
console.log(getCleanUrl('https://sidanmor.com/?firstname=idan&lastname=mor'));
Jeśli chcesz wszystkie href części, użyj tego:
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
Dobrze, używam to:
stripUrl(urlToStrip){
let stripped = urlToStrip.split('?')[0];
stripped = stripped.split('&')[0];
stripped = stripped.split('#')[0];
return stripped;
}
czyli
stripUrl(urlToStrip){
return urlToStrip.split('?')[0].split('&')[0].split('#')[0];
}
Spójrz na tym stanowisku: http://stackoverflow.com/questions/738351/recommended-for-javascript-url-manipulation-library-api/3215670 # 3215670 –
możliwy duplikat [kodowania querystringu obiektu javascript] (http://stackoverflow.com/question s/1714786/querystring-encoding-of-a-javascript-object) –