如何验证一个YouTube 播放列表使用正则表达式的网址?
我已经找到了答案,用于验证其他问题视频..
/^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$/
使用正则表达式验证YouTube播放列表URL
但我只是无法验证这样的网址:
http://www.youtube.com/watch?list=PL1F9CA2A03CF286C2&v=pFS4zYWxzNA&
或
http://www.youtube.com/watch?v=pFS4zYWxzNA&list=PL1F9CA2A03CF286C2&
是,此正则表达式的作品。但是,最后一个捕获组将始终为空,因为每个替代选项末尾的'。*'匹配到字符串末尾的所有内容。另外,点的使用是不合适的,因为它匹配任何URL中无效的空白。为了改善这一点,我会用所有的星号代替:'[^&\ s] *'否则,工作很好。 – ridgerunner 2011-03-13 20:14:40
@ridgerunner:我确实试图改变。*成为[^&\ s] *,但它不起作用。我将它改成这个'/^http:\/\ /(?: www \。)。 ?的YouTube \ .COM \ /观看\((v = [^&\ S] *&列表= [^&\ S] *)|(列表= [^&\ S] * v = [^&\ s]的*))(&[^&\ s] *)* $ /' – junxiong 2011-03-14 04:26:29
@ridgerunner:我添加了最后一个组来处理像'&feature = list_related&playnext = 1'这样的额外参数,也请参阅编辑 – Valerij 2011-03-14 13:58:59