我必须为我的项目设置一些不接受错误网址的规则。我正在使用正则表达式。
我的网址是“http:// some / resource / location”。
此网址不应允许开头,中间或结尾的空格。
例如,这些空格无效:
这些情况也是无效的。
目前我正在使用正则表达式
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
此正则表达式接受所有这些无效方案。我无法找到正确的匹配正则表达式,只有当url有效时才会接受。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
我们需要验证n个场景以进行URL验证。如果你对你的给定模式有所了解,那么从其他答案的regex表达式看起来很好。
或者
如果您想要处理所有网址验证方案,请参阅In search of the perfect URL validation regex
答案 1 :(得分:0)
$time_str = 'Friday September 09, 2016 7:00 pm - 8:00 pm';
$comma_pos = strpos($time_str, ',');
$date = substr($time_str, 0, $comma_pos + 7);
$time = substr($time_str, $comma_pos + 7, strlen($time_str));
$result = '<div>' . $date . '<span>' . $time . '</span></div>';
echo $result;
这个正则表达式好吗?
答案 2 :(得分:0)
使用此
^\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*)?$
请参阅live demo
这考虑了每对&#34;作为一个键后跟一个可选值(可能是空白),并有一个第一对,然后是一个可选的&amp;那么另一对,整个表达式(除了前导?)是可选的。这样做会阻止匹配?&amp; abc = def
另请注意,连字符在字符类中的最后一个时不需要转义,允许略微简化。
您似乎希望在键或值中的任何位置允许使用连字符。如果密钥需要连字符:
^\?(\w+(=[\w-]*)?(&\w+(=[\w-]*)?)*)?$