当前表达式验证网址 (HTTP),如何更改它以使空字符串也匹配?
(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
最佳答案
如果您想修改表达式以匹配一个完全空的字符串 或 完整的 URL,您将需要使用 anchor 元字符 ^ 和 $(分别匹配行的开头和结尾)。
^(|https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$
正如 dirkgently 指出的那样,您可以稍微简化您对协议(protocol)的匹配,所以我也为您提供了它。
但是,如果您在程序或脚本中使用此表达式,则使用语言自己的方法来检查输入是否为空可能会更简单。
// 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
关于regex - 验证网址并匹配空字符串的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591859/