我必须创建一个文本框,只允许你管视频的网址.
要在服务器端处理验证,我使用下面的代码
$rx = '~
^(?:https?://)? # Optional protocol
(?:www\.)? # Optional subdomain
(?:youtube\.com|youtu\.be) # Mandatory domain name
/watch\?v=([^&]+) # URI with video id as capture group 1
~x';
$has_match = preg_match($rx, $url, $matches);
Run Code Online (Sandbox Code Playgroud)
我正在为客户端验证寻找相同的解决方案.我在<input type="url"> 这里找到了 ,但它似乎只适用于html5浏览器.
是否可以使用文本框进行客户端验证,以便与所有浏览器兼容?
谢谢
我知道这是一个很常见的问题,有很多答案,但我的问题不同,我想接受以下所有格式的网址:
http://www.sample.com
https://www.sample.com
http://www.sample.com/xyz
www.sample.com
www.sample.com/xyz/#/xyz
sample.com
// & much more ...
Run Code Online (Sandbox Code Playgroud)
所以这里的想法是,我允许用户进入那里的网站和另一个用户可以点击已保存的网站并转到用户网站.因此,限制用户输入正确的URL并不是一个好主意,他们可以输入上述任何格式.这是我正在使用的正则表达式,但只检查URL是否从正确的协议开始:
^(ftp|http|https):\/\/[^ "]+$
Run Code Online (Sandbox Code Playgroud)