js利用正则表达式检验输入内容是否为网址

js正则检验输入的是否为网址功能在网页中也是很常见的,友情链接部分、表单填写个人主页的时候,使用JavaScript取验证是否为网址。

这个检验不好写,最好还是使用正则表达式去认证。

规定,输入的东西只能是http://与https://开头,而且必须是网址。

有人说,为何像www.1.com这样的网页不行呢?

这是以免你拿用户输入的东西构造超级链接的时候,a标签中的href属性如果遇不到http://或者https://的东西,那么就会认为是根目录,会在你的网站的网址后面接着写入这个地址再跳转,这个大家应该知道。比如<a href="www.1.com">xxx</a>,我的网址是http://localhost,那么点击这个显示为xxx的a标签之后,则只是跳到http://localhost/www.1.com这个位置,当然不对了。

比如如下的文本框,如何利用正则表达式做到要求用户输入的必须是http://与https://开头的网址呢?

1、首先是一个简单的布局,这个不用说了:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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>
</body>
</html>

 2、其次是脚本,其实也不用说了,关键是那条正则表达式:

 <script>
function CheckUrl(){
 var url=document.getElementById("url").value;
 var reg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/;
 if(!reg.test(url)){
 alert("这网址不是以http://https://开头,或者不是网址!");
 }
 else{
 alert("输入成功");
 }
}
</script>

在: var reg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/;之中,
 1、Javascript之中,由于所有变量都是var,因此正则表达式必须写在两个斜杠之中,/.../,然后正则表达式里面的斜杠/必须写成\/
 2、^表示必须以……开头,[]表示一个检验单位,也就是某个字符可以容纳的东西,比如^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/),就是要求以http://或者https://开头的意思。|是或者,第一个字符是h或者H,第二、三个字符是[tT],{2}是包括这个字符与其后面的1个字符都必须为[tT]的意思,之后以此类推
 3、([A-Za-z0-9-~]+)表示,包括这个字符及其随后的字符都必须大写字母、小写字母、数字、减号-或者是~
 字符+的意思是:匹配+号前面的字符1次或n次,例如:/a+/匹配"candy"中的'a'和"caaaaaaandy"中的所有'a'.
 4、因此(([A-Za-z0-9-~]+)\.)+则表示XXX.这个以点结尾的东西,必须在([A-Za-z0-9-~\/])+$这个字符前面出现至少1次
 5、$表示必须以大写字母、小写字母、数字、减号-、~、/结尾

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • js各种验证文本框输入格式(正则表达式)

    不能为空 <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> 只能输入英文和数字<input onblur="if(/[^0-9a-zA-Z]/g.test(value))alert('有错')"><input onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/><

  • js 常用正则表达式表单验证代码

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证.替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字.根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字. 基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表

  • js 输入框 正则表达式(菜鸟必看教程)

    源码如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> 用户名:<input type="text"name = "user" id="user"/> <span id="use

  • JS正则表达式的验证

    //判断输入内容是否为空 function IsNull(){ var str = document.getElementById('str').value.trim(); if(str.length==0){ alert('对不起,文本框不能为空或者为空格!');//请将"文本框"改成你需要验证的属性名称! } } //判断日期类型是否为YYYY-MM-DD格式的类型 function IsDate(){ var str = document.getElementById('str'

  • js利用正则表达式检验输入内容是否为网址

    js正则检验输入的是否为网址功能在网页中也是很常见的,友情链接部分.表单填写个人主页的时候,使用JavaScript取验证是否为网址. 这个检验不好写,最好还是使用正则表达式去认证. 规定,输入的东西只能是http://与https://开头,而且必须是网址. 有人说,为何像www.1.com这样的网页不行呢? 这是以免你拿用户输入的东西构造超级链接的时候,a标签中的href属性如果遇不到http://或者https://的东西,那么就会认为是根目录,会在你的网站的网址后面接着写入这个地址再跳转

  • js输入框使用正则表达式校验输入内容的实例

    js输入框输入校验 /*用户名称格式判断--用户名只能为下划线.数字.字母或中文长度不超过10个字符*/ function checkUserName(str) { var reg = /^[_0-9a-zA-Z\u4e00-\u9fa5]{1,10}$/; return reg.test(str); } 以上这篇js输入框使用正则表达式校验输入内容的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Js利用正则表达式去除字符串的中括号

    let str = '这是一个字符串[html]语句;[html]字符串很常见'; alert(str.replace(/\[|]/g,''));//移除字符串中的所有[]括号(不包括其内容) //输出:这是一个字符串html语句;html字符串很常见 alert(str.replace(/\[.*?\]/g,''));//移除字符串中的所有[]括号(包括其内容) //输出:这是一个字符串语句;字符串很常见 移除所有中括号,不包括其内容 let str = "[1,2,3,4,5,6,7,8]&

  • nodejs利用readline提示输入内容实例代码

    目录 前言 1. bat执行js 2. 终端提示输入版本号.执行打包命令 3. 修改版本号文件 总结 前言 最近进行小版本发包测试时忘记修改版本号了,进而想到在打包前提示输入版本号,然后把版本号打进版本说明内.最终效果为双击bat文件在终端内提示输入版本号,输入完成后保存版本号. 虽说批处理也可以做这事,但用js来写更得心应手点,故选用js处理. 过程分为四步 bat执行js 终端提示输入版本号.执行打包命令 修改版本号文件 gulp读取版本号json文件 简单来说是用bat文件触发打包命令进行

  • Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)

    js的replace函数除了替换文本以外还有获取所有被正则表达式匹配到的文本的功能.这里以一个简单的案例来作为演示. 利用正则查找出所有被两个花括号包裹的字符串: var str = <div class="item">{{test}}{{aaa}}{{bbb}}</div> str.replace(reg,function (match,param,offset,string) { console.log(match,param,offset,string);

  • JS利用正则表达式实现简单的密码强弱判断实例

    实现功能: 1.输入字符要在6-16之间:小于6个字符或大于16个字符时给予提示,而且强弱不显示:为0时,也给予提示: 2.当密码在6-16个字符之间时,如果密码全是数字或全是字母,显示弱:密码是数字与字母的组合,则显示强:若为字母数字加下划线,则为强: 效果图如下:  代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title>

  • java中 利用正则表达式提取( )内内容

    昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号) 教师10(0010)教师11(0011)教师9(009)教师12(0012)教师13(0013)教师14(0014) 本来想用java的String.split()和substring()来搞定,但是需要处理多次比较麻烦,就用正则表达式了.虽然语法忘得差不多了,但是印象中用断言比较方便(关键希望结果不带括号).打开RegexBuddy试了下,轻松搞定:下边是java实现代码: 复制代码 代码如下

  • 解析php利用正则表达式解决采集内容排版的问题

    做采集经常遇到的问题是内容排版问题,用了一些时间写了个用正则替换html标签和样式的函数,共享下. 复制代码 代码如下: /** * 格式化内容 * @param string $content 内容最好统一用utf-8编码 * @return string * !本函数需要开启tidy扩展 */function removeFormat($content) { $replaces = array (   "/<font.*?>/i" => '',   "/

  • C#利用正则判断输入是否为纯数字、容器类

    容器类.正则表达式在几乎所有编程语言都存在的东西.很常用也很使用.下面用如下的一个控制台小程序说明C#的正则表达式与容器类的应用. 开始直接输出在C#定义好的数据字典Dictionary,这就是Java与Python的HashMap,之后定义一个存int的List,让用户无限输入这个List的元素,输入到#则停止输入,在输入的过程中遇到不是纯输入,则拒绝这个输入.  遍历这个List输出,之后利用C#的另一个容器HashSet为这个List去重. 这个程序的代码如下,其实以上所有的东西都在以前的

随机推荐