Javascript 正则表达式返回捕获组值

标签 javascript regex

我正在解析一个 youtube URL,我想获取视频 ID,但我遇到了很多困难

我唯一能想到的就是这个

href = 'https://www.youtube.com/watch?v=-UI86rRSHkg'

...

video = href.replace(/^.*?youtube\.com\/.*?v=(.+?)(?:&|$).*/i, '$1');

但我认为一定有更好的方法来做到这一点。

如何在 JavaScript 正则表达式中获取捕获组的值?

最佳答案

要获取匹配的信息,请使用 String#match:

var id = href.match(/\byoutube\.com\/[^?]*\?v=([^&]+)/i)[1];

为了更安全地使用:

var id = (href.match(/\byoutube\.com\/[^?]*\?v=([^&]+)/i) || [null, null])[1];

第二种方法适用于 ?v=href 变量中丢失的情况。

关于Javascript 正则表达式返回捕获组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911524/

相关文章:

正则表达式匹配类型 : ddmmyyyy 的日期

javascript - 当用户选择设置为无时选择的文本区域

javascript - 更改复选框+标签jquery

javascript - 异步数据加载后提交 HTML 表单的正确方法是什么?

python - 根据多个可能的分隔符拆分 DataFrame 中的列

python - 正则表达式字符匹配计数器

javascript - 在加载另一个 JS 脚本后加载

javascript - VUE.JS 将数据传递给 D3 - 做对了吗?

php - JavaScript 正则表达式不适用于 PHP

regex - 给定正则表达式的最差输入