Я нашел это "[\\? &] V = ([^ & #] *)" в Интернете, может кто-то объяснить мне - PullRequest
6 голосов
/ 19 ноября 2009

В интернете я нашел метод, который может получить Id видео YouTube с URL.

это оно.

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

Идентификатор будет содержаться в "vid".

То, что я не понимаю, и я нахожу интересным и хочу знать, это.

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

Как это работает?

Ответы [ 2 ]

11 голосов
/ 19 ноября 2009

Используется регулярное выражение для извлечения идентификатора видео из полного URL-адреса. Это конкретное регулярное выражение разбивается следующим образом:

  1. [\\?&] - это класс символов. Он соответствует одному символу, который либо &, либо ?. (Знак вопроса - это специальный символ в регулярных выражениях JavaScript, поэтому его необходимо экранировать, если перед ним стоит обратная косая черта. Обратная косая черта - это специальный символ в строках JavaScript, поэтому it также необходимо экранировать, следовательно, двойное значение обратный слеш. Это довольно часто встречается в регулярных выражениях.)
  2. v= соответствует буквенной строке v=.
  3. ( начинает группу захвата, поэтому все до следующего ) будет помещено в отдельную запись в возвращенном массиве.
  4. [^&#]* любое количество символов (включая ни одного), пока не будет найдено & или #. В скобках указан класс символов, как указано выше, а ^ инвертирует класс, поэтому он включает в себя все символы , за исключением , перечисленные перед конечной скобкой. * указывает, что предыдущий класс символов должен совпадать ноль или более раз.
  5. ) завершает группу захвата.

Если совпадение прошло успешно, results[0] содержит весь URL, а results[1] содержит содержимое первой группы захвата, т.е. идентификатор видео.

1 голос
/ 19 ноября 2009

Соответствует идентификатору видео в URL-адресе YouTube.

[\\?&]v= // находит первый? V = или & v = в строке запроса

([^&#]*) // соответствует всем остальным до следующего & или #

Идентификатор видео хранится в results[1] (при условии совпадения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...