Javascript ниже работает только для фактического URL видео на YouTube.
<script> regex = /http\:\/\/www\.youtube\.com\/watch\?v=(\w{11})/; url = 'http://www.youtube.com/watch?v=VK4ah66jBvE&feature=feedu'; id = url.match(regex)[1]; document.write(''+id+''); </script>
Что я не знаю, как сделать, это регулярное выражение, если URL оказался миниатюрой видео YouTube, который в этом примеребудет http://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg?Я пытался
http://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg
<script> regex = /http\:\/\/i1\.ytimg\.com\/vi(\w{11})/0.jpg;; url = 'http://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg'; id = url.match(regex)[1]; document.write(''+id+''); </script>
это будет работать?
regex = new RegExp(/\/vi\/(.*)\//); url = 'http://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg'; id = url.match(regex)[1];
Вы пропускаете \/ до (\w{11}), затем вам нужно экранировать следующую косую черту с помощью \, вам, вероятно, следует экранировать ., а затем вам нужен закрывающий слеш:
\/
(\w{11})
\
.
var regex = /http\:\/\/i1\.ytimg\.com\/vi\/(\w{11})\/0\.jpg/;
Вы забыли а / и сбежать а / и трейлинг /
regex = /http\:\/\/i1\.ytimg\.com\/vi\/(\w{11})\/0.jpg/;