在我的数据对象中,我有一个完整的YouTube网址(http://www.youtube.com/watch?v=kJ9g_-p3dLA)。Angular如何从完整的YouTube网址获取视频ID
在我的部分我需要从这个字符串中提取视频ID(kJ9g_-p3dLA)。我试图在应用程序启动时不诉诸所有数据,并通过这种方式提取视频ID。
我正在寻找一个过滤器或指令,我可以提供将返回视频ID的完整YouTube ID。任何人?
在我的数据对象中,我有一个完整的YouTube网址(http://www.youtube.com/watch?v=kJ9g_-p3dLA)。Angular如何从完整的YouTube网址获取视频ID
在我的部分我需要从这个字符串中提取视频ID(kJ9g_-p3dLA)。我试图在应用程序启动时不诉诸所有数据,并通过这种方式提取视频ID。
我正在寻找一个过滤器或指令,我可以提供将返回视频ID的完整YouTube ID。任何人?
最后写我自己的过滤器这样的:
app.filter("GetYouTubeID", function ($sce) {
return function (text) {
var video_id = text.split('v=')[1].split('&')[0];
return video_id;
}
})
可以在局部使用像这样:
{{content.complete_youtube_url | GetYouTubeID}}
测试与爆炸PHP
的功能$ youtubre_url = “http://www.youtube.com/watch?v=kJ9g_-p3dLA”;
$ array_id = explode(“=”,$ youtubre_url); $ id = $ array_id [1];
我使用的角度,而不是PHP .... – Squrler
您可以使用正则表达式,它们与Angular没有依赖关系。
请注意,我不是一个正则表达式专家,所以我的表达式可能不是完美。
var regex = new RegExp(/(?:\?v=)([^&]+)(?:\&)*/);
var url = "http://www.youtube.com/watch?v=kJ9g_-p3dLA";
var matches = regex.exec(url);
var videoId = matches[1]; // kJ9g_-p3dLA
该正则表达式将捕获?V的基团=和&(所述&是可选的)。
<button onclick="myFunction()">Try it</button>
<p id = "demo" />
<script>
function myFunction() {
var url= "http://www.youtube.com/watch?v=kJ9g_-p3dLA"; //sample url
var res = str.split("http://www.youtube.com/watch?").splice("1");
document.getElementById("demo").innerHTML = url;
}
</script>
感谢Mike Pugh,由于周五晚上的监督...... :)感谢您的纠正。 – Squrler