用于提取 Youtube 视频 ID 的 JavaScript 正则表达式

2023-12-12

以下代码用于获取 Youtube 视频 ID,以便获取缩略图。

第一个正则表达式背后的原因是什么?它到底在做什么?它似乎返回至少两个结果。另外,两者可以结合起来吗?

else if(url.match("youtube.com/")){

    var vid;
    var results;

    //http://www.youtube.com/watch?v=GItD10Joaa0
    results = url.match("[\\?&]v=([^&#]*)");

    vid = ( results === null ) ? url : results[1];

    return "http://img.youtube.com/vi/"+vid+"/2.jpg";
} else if( url.match("youtu.be/") ) {

    var vid;
    var results;

    // http://youtu.be/5uxd-521uus?hd=1
    // results = url.match("[^http://youtu.be/](.*)[^?hd=1]");
    // Corrected
    results = url.match(""^http://youtu.be/(.*)(?=hd=1)");

    //alert(results[0]);
    vid = ( results === null ) ? url : results[0];

    return "http://img.youtube.com/vi/"+vid+"/2.jpg";
}

"[\\?&]v=([^&#]*)"

解释(从 JavaScript 字符串简化为正则表达式之后):

[\?&]   # Match a ? or a & (the backslash is unnecessary here!)
v=      # Match the literal text "v="
(       # Capture the following into backreference no. 1:
 [^&#]* # Zero or more characters except & or #
)       # End of capturing group.

第二个正则表达式[^http://youtu.be/](.*)[^?hd=1]是非常错误的。

它可能应该读

"^http://youtu.be/(.*)(?=hd=1)"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于提取 Youtube 视频 ID 的 JavaScript 正则表达式 的相关文章

  • 如何使用 jQuery 选择第一个块级父级?

    考虑以下标记 div h1 span span lorem ipsum span span h1 div 如何找到块级别的 span 3 的第一个父级 即具有display block 使用 jQuery 在这种情况下 那就是h1 1 3
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 禁用复选框上的输入

    需要在取消选中该复选框时禁用输入 并在选中该复选框时启用它 我的代码是这样的 div class y div
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • 如何解决“消息端口在收到响应之前已关闭”的问题。在 JavaScript 中的 window.location.reload() 之后

    我遇到了 javascript 问题 从 chrome v73 0 3683 86 开始 每当我在 window location reload 函数之后运行 javascript 代码时 它总是给我错误 Unchecked runtime
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 从更多元素中仅获取唯一名称

    我动态渲染了 HTML 其中列出了未确定数量的单选按钮 这些按钮的名称代表数据库中的某些 id 我需要收集收音机的所有唯一名称 这是一个例子
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • 将 numba 与 np.concatenate 并行使用效率不高?

    我在获取时遇到一些问题np concatenate有效地并行化 这是一个最小的工作示例 我知道在这里我可以总结a and b单独进行 但我专注于并行连接操作 因为这是我在项目中需要做的 然后我将对连接数组进行进一步的操作 例如排序 无论我在
  • Selenium C# - Chrome 驱动程序不会在无头模式下下载文件

    我正在使用 77 版 Chrome 来测试一些下载 但我不明白为什么它不允许在无头模式下下载文件 仅发生在无头模式下 这是我正在使用的代码 chromeOptions AddUserProfilePreference download de
  • 不使用内置类型和运算符的 Python 复数除法

    我必须实现一个名为ComplexNumbers它代表一个复数 我是不允许使用内置类型为了那个原因 我已经覆盖了运算符 add sub mul abs str 它允许执行基本操作 但现在我不得不覆盖 div 操作员 允许使用 我在用着floa
  • 在另一个指令中包含一个指令时,不会显示验证消息

    为了减少 html 验证的样板代码 我正在编写两个指令 一个用于模板 另一个用于验证 这两个指令都按预期工作 并且 angularjs 验证类确实附加到无效的输入标签 唯一的问题是我面临验证属于模板指令一部分的消息不会显示 笨蛋链接 问题似
  • 如何在使用 setTextIsSelectable 禁用触摸键盘后启用键盘

    我正在使用一个自定义应用内键盘 所以我需要禁用系统键盘 我可以这样做 editText setShowSoftInputOnFocus false 适用于 Android API 21 但是为了在 API 11 之前做同样的事情 我正在做
  • WPF/MVVM:将域模型集合委托给 ViewModel

    域模型集合 通常是 List 或 IEnumerable 是委托的到一个视图模型 这意味着我的 CustomerViewModel 有一个 List 或 IEnumerable 类型的订单集合 绑定控件无法识别列表中的任何更改 但对于 Ob
  • php mail() -> 垃圾邮件,有时甚至没有收到?

    我正在使用 php 的 mail 函数发送确认电子邮件 据我所知 电子邮件是通过 gmail 和其他方式接收的 我遇到的唯一真正问题是在将电子邮件发送到 Hotmail 或 Yahoo 帐户时 我在网上读过 很多人都建议PHP邮件程序 你们
  • Ruby 版本不在 rbenv 的 ruby​​-build 列表中

    我正在使用 Rails 4 2 并且想使用 rbenv 更新我的 Ruby 版本 我使用 Homebrew 安装 ruby build 无论我尝试更新多少次brew 当我运行时 Ruby版本2 1 3不会显示rbenv install li
  • 如何获取图片 URL 块? (谷歌地图)

    我正在研究如何生成自己的图像图块并像本示例一样放入服务器 该示例从以下位置加载图块http mt3 google com mapstt 但是如果我想要我的图像怎么办 var trafficOptions getTileUrl functio
  • Expression Blend 和 Visual Studio Render WPF 控件是否不同

    在我的 WPF 应用程序中 我使用 Expression Blend 设计了表单 令我惊讶的是 当我使用 Visual Studio 2008 加载解决方案时 渲染效果非常不同 更令人惊讶的是 当我运行应用程序时 生成的 UI 与 VS 和
  • 在gridview中隐藏分页号码?

    我试图隐藏显示在网格视图底部的网格视图上的分页号码 我使用下拉列表而不是这个点击次数 我怎样才能隐藏它们 请指教 根据MSDN 就这么简单 GridView PagerSettings Visible false
  • 为什么java中整数除法? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 据我了解 在Java中 如果我将两个整数相除 如果结果不是整数 则小数部分将被截断 并且我会从除法中得到整数结果 这对我来说毫无意义 我想知道我是否可以深入了解为什么 Java 是这样设计
  • 使用opencv和python抓取帧时如何保持恒定的FPS?

    我使用 OpenCV4 和 python 3 打开网络摄像头 抓取帧并将其显示在窗口中 就像提供的第一个代码教程一样here 然而 抓取不同的帧需要不同的时间 有时抓取需要 0 01 秒 有时需要 0 33 秒 这在窗口中显示帧时会产生滞后
  • Excel 互操作 - 如何停止“评估”数字(存储为文本)

    我想知道是否有人遇到过以下问题并对如何解决它有任何想法 我正在通过 Interop 将数据从 C 应用程序 NET 3 5 导出到 Excel 2003 其中一列存储一个看似数字的字符串值 也就是说它是一个以 0 开头的数字 例如00012
  • 在页面之间传递状态?

    我有一个包含两个页面的 Silverlight Windows Phone 7 应用程序 我想在它们之间传递一些重要的状态 数组或结构 我是否必须遵循将所有内容都打包到查询字符串中的 Web 模型 当所有页面和类都位于同一设备上 同一进程和
  • 简单的拖动物理原理,向左或向右移动时表现不同[重复]

    这个问题在这里已经有答案了 我的代码对于负速度的表现与对于正速度的表现不同 我正在尝试实现平台物理 玩家在 X 方向上有速度 当用户分别按下 A 或 D 时速度会增加或减少 或者当玩家与墙壁碰撞时设置为 0 为了模拟与地面的摩擦力 玩家的
  • 使用 Google Drive API 下载文件夹

    我在 Google Drive 上有一些数据 组织在文件夹中 我想将它们传播到其他服务器上 我有一些用于传播的脚本 但我需要从谷歌驱动器下载数据 有没有一种通过 Google Drive API 下载文件夹的方法 同时还能维护整个文件夹结构
  • 多个 WindowsBaloonTip / TrayTip 通知?

    如果您要使用下面的代码在通知区域中创建 TrayTips BaloonTips 您会注意到它只允许一条消息 然后会卡住并出错 代码取自here coding utf 8 from win32api import from win32gui
  • 我可以将字符串文字映射到类型的类型吗?

    我有一个字符串文字类型 例如 type ConfigurationTypes test mock 和一些类型 type MockType id string type TestType code string 我想创建一个将字符串文字 映射
  • 用于提取 Youtube 视频 ID 的 JavaScript 正则表达式

    以下代码用于获取 Youtube 视频 ID 以便获取缩略图 第一个正则表达式背后的原因是什么 它到底在做什么 它似乎返回至少两个结果 另外 两者可以结合起来吗 else if url match youtube com var vid v