Javascript 包含连字符的URL验证的正则表达式
我有一个用于URL验证的正则表达式,它工作正常,但如果URL包含Javascript 包含连字符的URL验证的正则表达式,javascript,regex,Javascript,Regex,我有一个用于URL验证的正则表达式,它工作正常,但如果URL包含连字符如www.I-card.com,则它不会通过,这是一个有效域,它应该通过它。这是我的正则表达式: ^((https?| ftp | smtp):\/\/)?(www.?[a-z0-9]+(\.[a-z]{2,}){1,3}(\.?\/?[a-zA-z0-9+)*\/?(\?[a-zA-z0-9-+=[a-zA-z0-9-%+=[a-zA-z0-9-%++=[a-zA-z0-9-%+&}$)试试这个版本: ^((https?|f
连字符
如www.I-card.com
,则它不会通过,这是一个有效域,它应该通过它。这是我的正则表达式:
^((https?| ftp | smtp):\/\/)?(www.?[a-z0-9]+(\.[a-z]{2,}){1,3}(\.?\/?[a-zA-z0-9+)*\/?(\?[a-zA-z0-9-+=[a-zA-z0-9-%+=[a-zA-z0-9-%++=[a-zA-z0-9-%+&}$
)试试这个版本:
^((https?|ftp|smtp):\/\/)?(www.)?[a-z0-9\-]+(\.[a-z\-]{2,}){1,3}(#?\/?[a-zA-Z0-9\-#]+)*\/?(\?[a-zA-Z0-9-_\-]+=[a-zA-Z0-9-%\-]+&?)?$
将一个
-
添加到第一个字符类:[a-z0-9-]+
这个正则表达式有点疯狂。它匹配许多不是URL的内容,也不匹配许多是URL的内容。@melpomene你能给我举个例子吗?@DheerajAgrawal不匹配http://EXAMPLE.COM
或http://127.0.44.1/
或http://cdn.xs4all.nl
。匹配www“example.com
和0.aa#1#2#3?-=%
。