js判断url是否是合法http/https

核心代码

function checkURL(URL) {
  var str = URL;
  //判断URL地址的正则表达式为:http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
  //下面的代码中应用了转义字符"\"输出一个字符"/"
  var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
  var objExp = new RegExp(Expression);
  if (objExp.test(str) == true) {
    return true;
  } else {
    return false;
  }
} 

测试

代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>未名编程</title>
</head>

<body>
网址必须以http://或者https://开头,且必须是个网址^_^!<br/>
<input type="text" id="url"/>
<button onclick="CheckUrl()">确定</button>
<script>
  function CheckUrl() {
    var url = document.getElementById("url").value;
    var reg = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
    if (!reg.test(url)) {
      alert("这网址不是以http://https://开头,或者不是网址!");
    } else {
      alert("输入成功");
    }
  }
</script>
</body>
</html>

结果

解释

/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/

在这里插入图片描述

  • Javascript之中,由于所有变量都是var,因此正则表达式必须写在两个斜杠之中,/…/,然后正则表达式里面的斜杠/必须写成 /
  • http(s)?😕/([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?
  • []表示一个检验单位,也就是某个字符可以容纳的东西。
  • ([A-Za-z0-9-]+)表示,包括这个字符及其随后的字符都必须大写字母、小写字母、数字、减号-或者是
    字符+的意思是:匹配+号前面的字符1次或n次,例如:/a+/匹配"candy"中的’a’和"caaaaaaandy"中的所有’a’.
  • 因此(([A-Za-z0-9-]+).)+则表示XXX.这个以点结尾的东西,必须在([A-Za-z0-9-/])+$这个字符前面出现至少1次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值