从字符串替换不需要的字符串?

时间:2019-01-12 19:09:29

标签: javascript jquery

我有一个javascript代码,它将在页面上查找任何YouTube链接,并将这些链接替换为iFrame,并将视频嵌入到iFrame中。

这很好。

但有时,youtube链接的链接末尾有一些东西,例如:

&t=3s&t=44s

我还必须能够删除这些内容,但我无法通过某种方式删除它。

这是我的代码:

https://jsfiddle.net/6tv4uebw/

代码:

$(".indiContent").html(function(e, t) {
                        return t.replace(/http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?‌​[\w\?‌​=]*)?/g, '<iframe width="100%" height="200" src="https://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>')
                    });

有人可以在这个问题上提出建议吗?

先谢谢了。

2 个答案:

答案 0 :(得分:0)

您可以使用此t.replace(/http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?‌​[\w\?‌​=]*)?/g, '<iframe width="100%" height="200" src="https://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>').replace(/&[^]*/,'') jsfiddle:jsfiddle.net/hrps0e5m/

答案 1 :(得分:0)

URL末尾的&t=3s是url传递的参数。 您可以使用简单的正则表达式找到所有这些内容。

在返回之前(在您的代码中),添加以下行:

var regex = /&.*/;
t = t.replace(regex, "");

然后对不带这些参数的链接进行任何操作。

祝你好运!