Слегка измененная версия от одного опубликованного сообщения:
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]{11,11}).*/;
var match = url.match(regExp);
if (match) if (match.length >= 2) return match[2];
// error
Предполагается, что код всегда состоит из 11 символов.Я использую это в ActionScript, но не уверен, что {11,11} поддерживается в Javascript.Также добавлена поддержка & v = .... (на всякий случай)