当前表达式验证Web地址(HTTP),如何更改它以使空字符串也匹配?
(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
Run Code Online (Sandbox Code Playgroud)
如果你想修改表达式匹配要么完全空字符串或者一个完整的URL,你需要使用锚元字符^和$(分别匹配行的开头和结尾其中).
^(|https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$
Run Code Online (Sandbox Code Playgroud)
正如Dirkgently指出的那样,你可以稍微简化你的协议匹配,所以我也把它包括在内.
但是,如果您在程序或脚本中使用此表达式,则使用语言自己检查输入是否为空可能更简单.
// in no particular language...
if input.length > 0 then
if input matches <regex> then
input is a URL
else
input is invalid
else
input is empty
Run Code Online (Sandbox Code Playgroud)