Javascript获取youtube视频ID(正则表达式问题)

时间:2015-05-12 20:07:09

标签: javascript regex youtube

我用:

<script type="text/javascript">
    document.addEventListener("DOMContentLoaded", function(event) {
        var field1 = document.getElementById("field_wy4dm0");
        field1.addEventListener("change", combineFields);

        function combineFields() {
            var val1 = field1.value;
            var val1re = val1.match("/(.*)?")[1];
            var str = document.getElementById("changeThisMovie").innerHTML;
            var res = str.replace("yeC3AisTs2Y", val1re);
            document.getElementById("changeThisMovie").innerHTML = res;
        }
    });
</script>

获取位于“/”和“?”之间的YouTube视频ID非常有用。在“val1”var中替换旧的视频id“yeC3AisTs2Y”,它位于div内,id =“changeThisMovie”,新的(“val1re”)。

问题是它添加“?”在新视频ID的末尾,而不是获取:

  

/视频ID?特征=嵌入...

我明白了:

  

/视频ID ??特征=嵌入...

我该如何解决这个问题?

感谢!!!

1 个答案:

答案 0 :(得分:0)

我想你想逃避吗?在你的正则表达式意味着文字?符号 - 正则表达式将解释为忽略前一个块

所以你可以尝试如下:

 var val1re = val1.match("/(.*)\?")[1];