为什么80%的码农都做不了架构师?>>>

正则表达式(点此在线编辑测试)是一个功能强大的灵活而简洁的匹配文本字符串的工具,比如匹配特定的字符、单词等。正则表达式通过一个语言规则来书写,通过正则表达式处理器来处理。维基百科有详细解释,这里不再赘述。维基百科:http://en.wikipedia.org/wiki/Regular_expression 。HTML5允许通过正则表达式的方式检测用户输入。

了解一下:

在HTML4中,你需要通过Javascript来实现这个功能。下面是代码:

<input type="text" name="ssn"
onblur="if (!^\d{3}-\d{2}-\d{4}$this.value)
alert(this.title+'\nAn error occurred. Please verify your data.');" title="The Social Security Number"/> 

当输入框的onblur事件触发的时候,一段javascript代码执行了,他控制了输入的匹配规则,如果输入不匹配他也提供了一段错误提示消息。但是在HTML5中,input标签增加了一个属性允许你通过正则表达式来验证输入,使用起来非常简单。废话不多述看代码。

<input type="text" name="ssn" pattern="(!^\d{3}-\d{2}-\d{4}$"

pattern属性中的值指定了输入的内容必须符合javascript规则的正则表达式。(这里有详细描述,http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf ) 注:符合条件的JavaScript模式意味着用于此属性的正则表达式语言跟Javascript中正则表达式的语言是相同的。(这就是为什么在表达式的开头有一个 ^(?: 在结尾有个 )$ 。),如果想为用户提供输入提示的话,可以使用title属性。

<input type="text" name="ssn"pattern="(!^\d{3}-\d{2}-\d{4}$"title="The Social Security Number" />

怎么构建

在下面的文章中我们使用正则表达式来验证美国邮编:

这里有完整代码(将正则表达式插入到文本输入框的属性中)

在线演示: http://www.osctools.net/jsbin/biyqiyqi/1/edit#html,live

<!DOCTYPE html><html><head><title>
</title></head><body><form id="myForm"><fieldset><legend>Solution 4-8: Creating custom input types using regular expressions</legend><label> Insert a valid American Zip code:<input type="text" name="ssn"pattern="(\d{5}([\-]\d{4})?)"title="Zip Code" /></label><p><input type="submit" value="Check Zip code" /> </p></fieldset></form></body></html>

当你将上述代码放在浏览器中执行的时候,例如在Opera中(支持pattern属性),单击表单的提交按钮。浏览器会控制输入框中的输入符合要匹配指定的正则表达式,如果验证失败将会返回一个错误消息。

提示:

并不是所有浏览器都支持这个强大的正则表达式属性,幸运的是我们可以找到一些库来填补这个空缺:你可通过如下网址https://github.com/westonruter/webforms2 Google's Web Forms 2。这个项目就像他网站上描述的一样是一个跨浏览器的Form2.0的规范的实现。当页面加载的时候如果浏览器不支持HTML5的某些功能,例如pattern属性,而这个库刚好有这个的实现的话,这个库会帮你搞定。你可以通过如下方式导入这个库:

<script type="text/javascript" src="YOUR_FOLDER/webforms2_src.js"></script>

无论你是使用webforms2.js或者webforms2p.js你都需要保证webforms2.css和webforms2-msie.js位于同一个目录。

OSChina.NET原创翻译/原文链接

转载于:https://my.oschina.net/jack230230/blog/64470

使用正则表达式构造定制的HTML5输入框相关推荐

  1. 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

    文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...

  2. html5输入框增加语音,为任意输入框添加语音输入功能

    最近大家是否也发现了,百度谷歌等好几个搜索引擎的输入框都有一个语音图标按钮了呢?其实这个功能的技术没有那么高深的,这个技术的实现其实就是HTML5里面的一个标签而已,,点击麦克风就能够进行语音识别了. ...

  3. html5输入框增加语音,html5在输入框添加语音输入功能

    [导读] 这里介绍的是大家以后要用到的html强大功能,可直接给输入框增加语音功能,下面我们先来看看实现方法.大家可以看到在输入框右边的麦克风图标,点击麦克风就能够进行语音识别了其实很简单,语音识别是 ...

  4. html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜

    本文就为大家带来一篇JS 仿支付宝input文本输入框放大组件的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希望能帮助到大家. input输入的时候可以在后边显 ...

  5. html5 输入框有值无效,HTML5基础 input required 输入框内必须有内容

    OS : Windows 10 browser : Chrome 83.0.4103.116 editor : Visual Studio Code 1.46.1 typesetting : Mark ...

  6. 浅谈ASP.NET 4中构造“.NET研究”HTML5视频控件

    在本文中,将一步步地指导你如何使用Visual Studio 2010和ASP.NET 4的相关知识,打造一个基于HTML5标准规范的视频播放控件,其中你会学习到一些关于HTML 5的知识,还会学到如 ...

  7. html 搜索 高亮效果,html5输入框高亮效果

    [实例简介]登录界面输入框高亮效果 [实例截图] [核心代码] 当前输入框高亮显示 body,form,h2,p,input{margin:0;padding:0;} body{color:#4f4f ...

  8. html5输入框表情,H5页面input输入框含有键盘自带的表情符时显示异常

    在做一个关于新闻的评论功能的H5页面时,需求里面要求能够发送表情显示表情,如果使用自定义的表情库,则在评论也还要加载大量的表情符图片,极大的影响加载速度,消耗流量,去看了下别的新闻网页版的评论部分也没 ...

  9. html5 输入框关键字搜索,vue input输入框关键字筛选检索列表数据展示

    想必大家在项目开发中难免会用到关键字筛选的功能,正好这次项目有需求要做这一块,就整理一下vue的input输入框输入关键字检索数据列表的代码.下面直接上代码: html: {{item.name}} ...

最新文章

  1. 两个数之和等于第三个数
  2. Django 3.2.5博客开发教程:实现网站首页
  3. 织梦(dedecms)当前位置{dede:field name='position' /}修改
  4. CodeForces - 1526D Kill Anton(模拟)
  5. 我的log4j与logback简易配置
  6. glibc free 死锁
  7. 钱币兑换问题 (完全背包)
  8. Django模板系统 运算
  9. keras文件存放的目录
  10. 基于SpringBoot的后台管理系统(启动类解析,开源的世界真好)(一)
  11. 【学习 Opencv】—— 访问摄像机和视频
  12. gimp 架构_常见GUI 框架
  13. graphpad prism柱状图横坐标斜着_GraphPad Prism绘图教程 | 如何制作对数坐标的图表...
  14. Cpk (Process Capability Index)
  15. #2016京东实习生笔试之生日礼物
  16. 网易裁掉患绝症员工:总有人能替代你工作,却没人能替你活!
  17. EPLAN中断点使用方法1
  18. 超级细菌战:一场人类无法打赢的战争
  19. 孙陶然:创业是从零开始的一次全新旅程
  20. 线性代数(行列式矩阵向量)

热门文章

  1. Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)
  2. java编写最大公约数_Java编写最大公约数和最小公倍数
  3. 【java】巨菜博主安装jdk为什么每次都失败?
  4. 【jquery】jquery基础知识
  5. 根据传入坐标和图片URL地址对图片进行切图操作、将图片转化成Base64位码
  6. ionic项目创建打包签名
  7. 交换机启用光口命令_如何在思科交换机上查询光模块状态?
  8. 微信小程序实现滑动翻页效果源码附效果图
  9. APP转让时提示:您必须移除要转让的 App 的所有构建版本和测试员,并清除“测试信息”下的所有信息
  10. iOS 一行命令发布 Pod 框架