Angular如何从完整的YouTube网址获取视频ID

时间:2014-05-02 18:26:53

标签: angularjs

在我的数据对象中,我有一个完整的YouTube网址(http://www.youtube.com/watch?v=kJ9g_-p3dLA)。

在我的部分中,我需要从该字符串中提取视频ID(kJ9g_-p3dLA)。我试图在应用程序启动时通过运行我的所有数据并通过这种方式提取视频ID。

我正在寻找一个过滤器或指令,我可以提供将返回视频ID的完整YouTube ID。任何人吗?

4 个答案:

答案 0 :(得分:2)

结束编写我自己的过滤器:

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}}

答案 1 :(得分:1)

<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>

答案 2 :(得分:0)

您可以使用正则表达式,它们不依赖于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 =和&amp;之间的一个组。 (&amp;是可选的)。

答案 3 :(得分:-4)

使用PHP的爆炸功能进行测试

$ youtubre_url =“http://www.youtube.com/watch?v=kJ9g_-p3dLA”;

$ array_id = explode(“=”,$ youtubre_url); $ id = $ array_id [1];