Javascript:正则表达式中的空字符串匹配

Javascript:正则表达式中的空字符串匹配,javascript,regex,expression,Javascript,Regex,Expression,我想在正则表达式的帮助下,将url与contatinhttp/https和(www)匹配,或者不与(www)匹配。下面是我的常用表达 ^((https?)://)(www\\.)| ^$ +(\.[a-z0-9-]+)+([/?].*)?$ 但在此情况下,空字符串无效,例如: 当我输入http://www.google.com是有效的url,但http://google.com无效。 提前感谢您的回答。您无法使用^$搜索不存在的零件。这需要字符串(行)的开头,字符串(行)的结尾 只需将“www

我想在正则表达式的帮助下,将url与contatin
http/https
(www)
匹配,或者不与
(www)
匹配。下面是我的常用表达

^((https?)://)(www\\.)| ^$ +(\.[a-z0-9-]+)+([/?].*)?$
但在此情况下,空字符串无效,例如: 当我输入
http://www.google.com
是有效的url,但
http://google.com
无效。
提前感谢您的回答。

您无法使用
^$
搜索不存在的零件。这需要字符串(行)的开头,字符串(行)的结尾

只需将“www”部分设置为可选:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$
另一个问题是,您正在搜索一行中的两个点:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$
                    ^    ^
我认为更好的模式是

^((https?)://)(www\\.)?([a-z0-9-]+)(\.[a-z0-9-]+)*([/?].*)?$

你知道吗,你只允许字符
[a-z0-9-]

谢谢,但是我只想限制
(www)
,在这一点上,另一个字符也接受像“sss”这样的字符,你想知道字符序列属于域的哪一部分吗?e、 g.
http://www.sss.com
http://sss.com
?那么@stema我做什么,或者请给我另一个正则表达式,它验证所有有效的url。请参阅