我在互联网上找到了一种方法,可以从 url 中检索 youtube 视频的 Id。
就是这样。
var vid; var results; results = url.match("[\\?&]v=([^&#]*)"); vid = ( results === null ) ? url : results[1];
Id 将包含在“vid”中。
我不明白,我觉得有趣,想知道的是这个。
results = url.match("[\\?&]v=([^&#]*)");
它是如何工作的?
最佳答案
它正在使用 regular expression从完整的 URL 中提取视频的 ID。这个特定的正则表达式分解如下:
[\\?&]
是一个字符类。它匹配单个字符,即&
或?
。 (问号是 JavaScript 正则表达式中的特殊字符,因此必须通过在其前面加上反斜杠对其进行转义。反斜杠是 JavaScript 字符串中的特殊字符,因此它也必须进行转义,因此双反斜杠。这在正则表达式中很常见。)v=
匹配文字字符串v=
。(
开始一个捕获组,所以直到下一个)
的所有内容都将被放入返回数组中的单独条目中。[^]*
任意数量的字符(包括无字符),直到找到&
或#
。括号表示字符类,如上所示,^
反转类,因此它包括所有字符除了在结束括号之前列出的字符。*
表示前面的字符类要匹配零次或多次。)
结束捕获组。
假设匹配成功,results[0]
包含整个URL,results[1]
包含第一个捕获组的内容,即id视频。
关于javascript - 我在网上找到这个 "[\\?&]v=([^&#]*)"谁能给我解释一下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1760136/