当前的表达式验证一个Web地址(HTTP),我该如何更改它,使得空字符串也可以匹配?
(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
^(|https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$
// 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
?
”量词,无或一次重复)。((http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)?
^$
将其放在表达式周围,并在末尾添加|^$
。这样,您就可以使用|
或运算符来显示两个不同的匹配情况,从而实现更好的匹配效果。^(https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$|^$
|^$
表示“或匹配空白字符”。Expr?
其中 Expr
是您的 URL 匹配器。就像我为 http
和 https
所做的一样:https?
。?
被称为量词 -- 您可以查找它。来自 Wikipedia:
? 问号表示前面的元素有零个或一个。