如何使用JQuery剥离URL的一部分并将其余部分设置为源?

时间:2017-05-02 14:44:25

标签: javascript jquery

我试图找出如何删除URL的一部分并使用JQuery将其余部分设置为源? (我们试图摆脱的URL部分是我们所在的实际域名)。因此,这就像通过剥离主域名并保留其余部分来强制内部链接到外部链接。

原始代码:

<li data-src="http://khan.zaha.in/https://storage.googleapis.com/shahbano-khan/Media/Audio/Desmeon%20-%20Back%20From%20The%20Dead.mp3" data-title="1. Back From the Dead" class="song-row">

我需要的是:

<li data-src="https://storage.googleapis.com/shahbano-khan/Media/Audio/Desmeon%20-%20Back%20From%20The%20Dead.mp3" data-title="1. Back From the Dead" class="song-row">

所以我们将摆脱原始域名。

如果还有其他方法可以实现这一目标,我将很乐意尝试。 期待获得健康的帮助。

此致 Syed H

3 个答案:

答案 0 :(得分:1)

我们可以使用replace删除不需要的字符串,并使用attr(attributeName, value)方法将其设置回来

var originalStr = $('li').attr('data-src'); // get current src
var strTobeRemvd = 'http://khan.zaha.in/';
var modified = originalStr.replace(strTobeRemvd,''); //remove the unwanted str
$('li').attr('data-src', modified);// set the modified src back

console.log(modified)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li data-src="http://khan.zaha.in/https://storage.googleapis.com/shahbano-khan/Media/Audio/Desmeon%20-%20Back%20From%20The%20Dead.mp3" data-title="1. Back From the Dead" class="song-row">

答案 1 :(得分:0)

如果你想从任何网址而不仅仅是khan.zania域中删除所有这些出现,这将证明更有用,因为它基本上取了第一个http://或https://之后的部分并找到url的第一个/直到结束。

$('li[data-src^="http"]').each(function(){
    var data=$(this).attr('data-src');
    $(this).attr('data-src',data.slice(data.indexOf('/',8)+1));
});

试过并测试过。这有效。希望它有所帮助。

答案 2 :(得分:0)

您最好通过正则表达式执行此操作,然后不是特定于域名:

_src = $('.song-row').data('src');
_src = _src.replace(/http:\/\/(?:www\.)?([a-z0-9\-]+)(?:\.[a-z\.]+[\/]?)/g,'');
$('.song-row').attr('data-src', _src);

你可以看到它在这里工作 - https://jsfiddle.net/f6f7wwto/2