自定义URL验证正则表达式

时间:2019-05-10 03:16:47

标签: javascript regex

这就是我要实现的目标。

  1. 用户不应输入包含www的文件协议,因此http(s)://www.应该失败
  2. URL可以具有子域和文件扩展名
  3. URL可以具有多个级别,例如user / john / form.html

有效方案

 1. All urls expcept protocol and www Eg: https://www. , http://www 

这意味着应接受所有url,但不包含协议和www

我尝试过这些正则表达式

  1. ^(http://www.|https://www.|http://|https://)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$

  2. /^(http://www.|https://www.|http://|https://)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/gm

  3. /^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/

此处演示

let re = /^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/;
let url = 'xxxx.xxxx.xxxx'; // this is valid but test returns false
let url2 = 'https://www.xxzx.com/xxx.aspx'; // this should fail as there is https://www in url

console.log(re.test(url)); //
console.log(re.test(url2)); //

0 个答案:

没有答案