我发现这个"[\\?&] v =([^&#]*)"在互联网上可以有人解释给我

Aar*_*ndt 6 javascript regex youtube parsing

我在互联网上找到了一种方法,可以从网址中检索YouTube视频的ID.

就是这个.

var vid;
var results;
results = url.match("[\\?&]v=([^&#]*)");
vid = ( results === null ) ? url : results[1];

Id将包含在"vid"中.

我不明白,我发现有趣,想知道是这个.

results = url.match("[\\?&]v=([^&#]*)");

它是如何工作的?

bca*_*cat 11

它使用正则表达式从完整的URL中提取视频的ID.这个特殊的正则表达式分解如下:

  1. [\\?&]是一个角色类.它匹配单个字符,或者是&?.(问号是JavaScript正则表达式中的一个特殊字符,所以它必须通过前面的反斜杠进行转义.反斜杠是JavaScript字符串中的一个特殊字符,所以它也必须被转义,因此是双反斜杠.这在常用表达.)
  2. v=匹配文字字符串v=.
  3. (开始一个捕获组,所以直到下一个)将被放入返回数组中的单独条目.
  4. [^&#]*任何数量的字符(包括无),直到找到&#找到.括号表示如上所述的字符类,并且^反转类,因此它包括结束括号之前列出的字符之外的所有字符.的*表示前述字符类是要匹配零次或多次.
  5. )结束该捕获组.

假设匹配成功,则results[0]包含整个URL,并results[1]包含第一个捕获组的内容,即视频的ID.

  • +1用于解释一步一步; 这是最有帮助的答案 (3认同)