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

时间:2013-06-14 07:23:59

标签: javascript regex expression

我希望在正则表达式的帮助下将网址与contatin http/https(www)匹配或不匹配(www)。以下是我的regualr表达

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

但是在这里,空字符串不起作用,例如: 我输入http://www.google.com时是有效的网址,但http://google.com无效。 谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

您无法使用^$搜索不存在的声部。期待字符串(行)的开头,字符串(行)的结尾。

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

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

另一个问题是,你要连续搜索两个点:

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

我认为更好的模式将是

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

您是否知道,只允许字符[a-z0-9-]排除了大量有效的网址?