Добавьте "/ путь /" в середине URL в JavaScript - PullRequest
0 голосов
/ 24 июня 2018

Как эффективно добавить «путь» к середине URL-адреса в JavaScript?

Я хочу добавить embed к URL-адресу, чтобы URL-адрес https://blog.com/post/123 заканчивалсявыглядит так https://blog.com/embed/post/123?

Приветствия

Ответы [ 4 ]

0 голосов
/ 26 июня 2018

Вы можете создать <a> и установить свойство href.Затем добавьте embed к пути и используйте toString () , чтобы получить весь URL.

let element = document.createElement('a');
element.href = 'https://blog.com/post/123';
element.pathname = 'embed' + element.pathname;
console.log(element.toString());
0 голосов
/ 24 июня 2018

Вы можете использовать API местоположения.

https://developer.mozilla.org/en-US/docs/Web/API/Location

function addEmbed(location) {
    return location.protocol + '//' + location.host +
        '/embed' + location.pathname;
}

var url = document.createElement('a');
url.href = 'https://blog.com/post/123';

var embed = addEmbed(url);
console.log(embed);  // "https://blog.com/embed/post/123"

Пример: https://codepen.io/anon/pen/wXxvaq

0 голосов
/ 25 июня 2018

Способ, которым я бы это сделал, - передать в качестве ref / value исходный URL и текст, который вы хотите добавить, в функцию.Затем он удаляет «https://" (при необходимости), разбивает URL-адрес на первый« / »и сохраняет каждую часть как переменную. Наконец, он собирает все вместе и выводит ее в

на html-странице.Это не нужно выводить таким образом, его можно сохранить как глобальную переменную, а затем использовать в ссылке (но я не знал, каков был ваш план, поэтому я вывел его):)

function addToURL(URL, add) {
    URL = URL.replace(/(^\w+:|^)\/\//, '');
    var part1 = URL.substring(0, URL.indexOf("/") + 1);
    var part2 = URL.substring(URL.indexOf("/"), URL.length);
    var result = "https://" + part1 + add + part2;
    document.getElementById("demo").innerHTML = result;
}

Вот пример, который я сделал: https://codepen.io/anon/pen/RJBwZp

Надеюсь, это поможет: P

0 голосов
/ 24 июня 2018

Вы можете сделать это, если путь это просто строка

var path = "https://blog.com/post/123";
var withEmbed = path.replace(/\/post\//,'/embed/post/');
console.log(withEmbed);
...