我正在使用此正则表达式来验证youtube网址.
^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$
Run Code Online (Sandbox Code Playgroud)
它很棒.
但我有一个问题.
如果用户输入http://www.youtube.com/watch?v=zcKEjSYJVLs&feature=topvideos_sports,则可以正常使用
现在我想避免这种情况
http://www.youtube.com/watch?v=zcKEjSYJVLs&feature=topvideos_sportshttp://www.youtube.com/watch?v=zcKEjSYJVLs&feature=topvideos_sportshttp://www.youtube.com/watch?v=zcKEjSYJVLs&feature=topvideos_sports
Run Code Online (Sandbox Code Playgroud)
多次粘贴相同的URL(在我们的例子中是三次).对于此正则表达式,它也是有效的YouTube地址.
我正在寻找一种解决方法.
?
在第一个之后不要允许另一个:
^http:\/\/(?:www\.)?youtube.com\/watch\?(?=[^?]*v=\w+)(?:[^\s?]+)?$
Run Code Online (Sandbox Code Playgroud)
?
应该对查询参数中的实际内容进行转义,因此此方法不应排除任何有效的URL.