I am using this regular expression to validate youtube urls.
^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$
it works great.
But I have a problem with this.
If user enters http://www.youtube.com/watch?v=zcKEjSYJVLs&feature=topvideos_sports it works fine
Now I want to avoid this
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
same URL pasted multiple times(thrice in our case). For this regular expression it is also a valid youtube address.
I am looking for a workaround.
Don't allow another ?
after the first one:
^http:\/\/(?:www\.)?youtube.com\/watch\?(?=[^?]*v=\w+)(?:[^\s?]+)?$
An actual ?
in the query parameters should be escaped, so this approach shouldn't exclude any valid URLs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With