2 youyadezds youyadeZDS 于 2017.09.14 17:51 提问

正则表达式 验证一级二级域名

各位大神,遇到个需求,用户在输入框输入一级或二级域名的网址,我做验证的时候用了正则表达式如下:
var regExp = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)[a-z0-9_-]{2,}(.[a-z0-9_-]{2,})*.(com|net|cn)

但是遇到问题,验证http://abcjsef.com 没问题,但是验证 http://www.baidu.com
是有问题的, 就是这个 www. 这个验证不了,本人对正则不太熟练。因为要同时验证一级和二级域名,所以不会弄了,求各位指点,或者给些思路也行

3个回答

Runner__1
Runner__1   Rxr 2017.09.14 20:01

刚才多写了一个空格,应该是:

  /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)([a-z0-9]+\.)?[a-z0-9_-]{2,}(.[a-z0-9_-]{2,})*.(com|net|cn) 
morgerton
morgerton   2017.09.14 18:05
youyadeZDS
youyadeZDS 不行啊,这个,满足不了我的需求,这个和我写的差不多,它只会验证后缀.com.cn这种,我的需求是,有www的时候要验证www.+中间部分+.com或者.cn我才给通过
2 个月之前 回复
Runner__1
Runner__1   Rxr 2017.09.14 19:59

要把一级和二级域名统一起来所要考虑的就是域名是否存在类似www这样的前缀,那就判断这个前缀出现0次或1次,变成这样:

 /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/) ([a-z0-9]+\.)?[a-z0-9_-]{2,}(.[a-z0-9_-]{2,})*.(com|net|cn) 

Csdn user default icon
上传中...
上传图片
插入图片