我正在解析一个 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/