gpt4 book ai didi

javascript - 从 YouTube 嵌入代码中提取视频 ID

转载 作者:行者123 更新时间:2023-11-30 07:44:04 25 4
gpt4 key购买 nike

我正在尝试移植一个 PHP preg_match 表达式,以从 YouTube 中提取视频 ID 在 Javascript 中嵌入代码。我目前在 PHP 中有这个:

$pattern = '%(?:https?://)?(?:www\.)?(?:youtu\.be/| youtube\.com(?:/embed/|/v/|/watch\?v=))([\w-]{10,12})[a-zA-Z0-9\<\>\"]%x';
$result = preg_match($pattern, $url, $matches);

这有效并返回一个视频 ID。我已尝试使用以下内容以使其在 Javascript 中运行:

var reg = /(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch\?v=))([\w-]{10,12})/g;
var matches = uploadVideoEmbedCode.match(reg);

我使用的测试数据是:

<iframe width="560" height="315" src="http://www.youtube.com/embed/1NMUDb3Ewhs" frameborder="0" allowfullscreen></iframe>

当我尝试在 javascript 中使用上述正则表达式时,出现以下错误:

Uncaught SyntaxError: Unexpected token ?

如有帮助,我们将不胜感激。

最佳答案

您需要转义正则表达式中的 / 斜杠,因为它们是分隔符。每当您想匹配文字 / 时,请使用 \/:

var reg = /(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=))([\w-]{10,12})/g;

另一种选择是使用 new RegExp('...', 'g') 而不是 /.../g - 但是你需要转义每个反斜杠会更烦人:

var reg = new RegExp('(?:https?://)?(?:www\\.)?(?:youtu\\.be/|youtube\\.com(?:/embed/|/v/|/watch\\?v=))([\\w-]{10,12})', 'g');

要最终获得 ID,请使用 var id = reg.exec(yourString)[1]

关于javascript - 从 YouTube 嵌入代码中提取视频 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com