关于html以及js相关格式验证的记录

 验证的常见方式

我们在写前端的时候或多或少的会遇到一些验证格式问题,通常我们有三种解决办法。

  • 第一种就是在输入完成后在输入框附近验证给出提示
  • 第二种就是在输入完成后在提交的时候排着验证提示
  • 第三张就是限制输入

前面两种我们都是非常的熟悉以及想到的,但是我们有时候想要的反而是第三种,因为这样可以避免非法的输入。第三张限制输入不外乎就是实现输入的实时监听,然后使用正则表达式来进行对输入的值验证,

验证通过就保留,验证不通过就删除掉。当然也并非一定这样,有些也是可以实时监听后做提示的。看个人意愿。

主要是实现实时监听值事件

一般我们实现实时监听事件可以是onkeyup,oninput和onpropertychange。

 onkeyup

事件介绍:onkeyup事件是在输的时候在键盘松开的时候进行触发验证。

示例代码:

onkeyup="value=value.replace(/[^\d|\.]/g,'')"

        

 oninput

事件介绍:oninput事件在用户常识输入时触发,该事件类似于 onchange 事件。不同之处在于 oninput 事件在元素值发生变化是立即触发, onchange 在元素失去焦点时触。

示例代码:

oninput="var ary = this.value.match(/(\d (\.\d{0,2})?)/);this.value=ary==null?'':ary[0];"

       

onpropertychange

事件介绍:onpropertychange事件可以说是ie浏览器的专属了,不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到:

示例代码:

onpropertychange="var ary = this.value.match(/(\d (\.\d{0,2})?)/);this.value=ary==null?'':ary[0];"

 注:该事件为ie专属,反正我在使用中是你要是ie9以上就不要使用他有时候会不好使,这样你可以使用oninput,能不用最好别用。

补充方法说明:

  • match: match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。类似于indexOf() 和 lastIndexOf(),但是他返回的是值不是位置。什么意思哪,通俗的讲就是在给定的字符串内找到和表达式匹配的值例如 math(“34”),然后我要匹配的字符串是:143474534634。然后通过匹配得到的就是一个数组:【“34”,“34”,“34”】,分别是字符串(143474534634)中的位置2和3,7和8,10和11.就是返回字符串中所有匹配的值然后返回给你。就是这个意思,当然要返回多个匹配还是要在正则表达式后面加g标志。
  • replace(regexp/substr,replacement):replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。这个好理解,就是替换调验证不通过的字符串。替换内容为第二个参数。

 平时记录收藏的正则表达式

 验证中文,数字,英文:/^[a-zA-Z0-9\u4E00-\u9FA5] $/

 验证只运行输入字母或者数字:/^[0-9a-zA-Z] $/

 验证数字:/^[ |-]{0,1}(\d )$|^[ |-]{0,1}(\d \.\d )$/

 验证邮政编码:/^[1-9]\d{5}$/i

 验证年龄:/^(?:[1-9][0-9]?|1[01][0-9]|120)$/i

只能输入正整数数字:/[^\d|\.]/g

只能输入包含两位小数的正整数数字:/(\d (\.\d{0,2})?)/

验证数字包含正负小数:/[^\ |\-|\d|\.]/g

验证不可为空:/\s /g

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql重做日志_MySQL-重做日志 redo log -原理

【redo log buffer】【redo log file】-原理目录:1.重做日志写入过程图2.相关知识点汇总图3.redo_log_buffer 原理4.redo_log_file 原理1. 重做日志写入过程:2. 相关知识点汇总:3. redo log buffer 原理重做日志缓冲(redo log buffer)是Innod…

Java 8 Friday:使用Streams API时的10个细微错误

在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五,我们都会向您展示一些不错的教程风格的Java 8新功能&#…

mysql集群重启offline_mysql集群搭建问题及解决方法集锦

在上一篇博客中写了如何搭建mysql集群,之所以遇到这些问题,是因为刚开始弄mysql集群的时候不熟悉,正是因为这些问题,让我对mysql集群的了解渐渐深入,下面介绍在搭建mysql集群的时候我遇到了一些问题。1、mysql集群安装…

Java SE 8新功能导览:Java开发世界中的重大变化

与其他专业团队成员一样,我是采用OpenJDK的成员之一,但是从最近8个月开始加入,我们经历了Java SE 8 开发,编译,编码,讨论等各个阶段,直到将其付诸实践为止。 。 它于2014年3月18日发布&#xff…

从Java官网下载最新的文档(包含API文档)

Java学习资料(适合c转java的同学): Java中带包(创建及引用)的类的编译 - 小明快点跑 JAVA 对象引用,以及对象赋值 - 飘来荡去。 Java官网下载页:https://www.oracle.com/technetwork/java/javase/downloads/index.html…

babel安装

注意:如果没有装node.js,先去装一个!!安装node.js时会默认安装npm。 步骤: 1、新建一个文件夹,装接下来的所有东西。我新建了一个learn-es6文件夹 2、在learn-es6项目文件下创建根目录文件: …

针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom

为什么呢 很多时候,我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题。 为了提供解决方案,我经常最终会尝试项目结构,测试我在不同应用程序服务器上的部署并细化我的配置。 Maven对于新来者来说可能会有陡峭的学习曲线&a…

sql server 学习记录

sql-server 基础: 1、查看sqlserver的数据表 SELECT name,crdate FROM SysObjects Where XTypeU order by crdate desc 查看数据表的字段 SELECT A.name AS table_name,B.name AS column_name,C.value AS column_description FROM sys.tables A INNER JOIN sys.col…

mysql 子字符串函数_MySQL 内置字符串函数

MySQL内置函数concat()用于连接字段LTRIM(),RTRIM(),TRIM()分别用于去除左边空格,右边空格,以及左右空格都去除NOW()放回当前的日期和时间UPPER() 和LOWER()upper():转换为年夜写输出; lower() 转换为小写输出LEFT()返回串左边的字符RIGHT()返回串右边的字符,办法参考LEFT()LOC…

弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介 细粒度视觉分类(FGCV,Fine-Grained Visual Categorization)即识别细分类别的任务,一般它需要同时使用全局图像信息与局部特征信息精确识别图像子类别。细…

JS中apply和call的应用和区别

因为object没有某个方法,但是别的对象有,可以借助apply或call像别的对象借方法来操作。 猫吃鱼,狗吃肉,奥特曼打小怪兽。 有天狗想吃鱼了 猫.吃鱼.call(狗,鱼) 狗就吃到鱼了 猫成精了,想打怪兽 奥特曼.打小…

解题:NOIP 2018 保卫王国

题面 最小支配集全集-最大独立集 所以先把点权改成正无穷/负无穷来保证强制选/不选某个点到独立集里&#xff0c;然后变成了洛谷的动态DP模板 GTMDNOIP2018ZTY 1 #include<stack>2 #include<cstdio>3 #include<cstring>4 #include<algorithm>5 using n…

petshop4学习_重构DataList实现分页

掌握要点: <IList>,DataGrid翻页事件...详细代码如下,慢慢体会..usingSystem;usingSystem.Collections;usingSystem.Collections.Specialized;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceCustom…

如何与Java 8,NetBeans Platform 8,Jenkins,Jacoco和Sonar进行持续集成

介绍 Java 8出现了&#xff0c;人们所期待的革命终于发布了&#xff0c;我敢肯定&#xff0c;你们中的许多人都在想着同样的问题“我应该在项目中使用它吗&#xff1f;”。 好吧&#xff0c;几个月来我遇到了同样的问题&#xff0c;今天我有一个答案想与大家分享。 很多方面都…

WSS学习(一)---简单部署图

研究了一段时间的WSS&#xff0c;终于找到点头绪了今天把这段时间的思路整理了一下&#xff0c;结果发现就是这么一张图也不知道研究的对不对&#xff0c;有高手发现不对的给点指点有也在研究的大家一起讨论一下简单说明&#xff1a;数据库用SQL2005&#xff0c;报表用SQL2005的…

Wildfly 8.0通过其JAXRS 2.0实现提供了无缝的JSON支持。

很高兴看到Wildfly 8.0使得使用同一组JAXB类中的XML和JSON表示 两者变得更加容易&#xff0c;而无需任何额外的检查或配置不同的JAXB运行时实现。 您需要做的就是 只需从JAXRS资源类中的业务方法中返回JAXB对象 将HTTP Accept标头设置为application / json 返回JAXB类的简单…

vue.config.js配置别名alias、配置生产环境清除console

项目中使用引入文件有时候路径比较深&#xff0c;需要使用"../../../xx.js"这种类似的路劲引入&#xff0c;这种方式比较笨&#xff0c;可以使用webpack的别名alias配置来解决。 首先&#xff0c;先确定项目中是否有path模块&#xff1a; 如果没有path模块需要先安装…

借助Java 8和lambdas,可以一起使用AssertJ和Awaitility

AssertJ和Awaitility是在自动代码测试中使用的两个我最喜欢的工具。 不幸的是直到最近&#xff0c;还不能一起使用它。 但是随后Java 8进入了游戏&#xff0c;几十行代码足以使其在Awaility 1.6.0中实现。 AssertJ提供了一组丰富的断言&#xff0c;其中包含非常有用的错误消息…

小程序-冒泡事件

小程序冒泡事件与非冒泡事件 会随之触发父元素的称为冒泡事件&#xff0c;反之&#xff0c;则是非冒泡事件 wxml&#xff1a; <view class"view1" bindtap"view1click"> <!-- 用 bind 绑定事件 -->view1<view class"view2" bin…

mysql导出表结构 创建_mysql如何导出表结构为文本文件

Log Goup ID&#xff0c;可能会配置多个redo组&#xff0c;每个组对应一个id&#xff0c;当前都是0&#xff0c;占用4字节Start LSN&#xff0c;这个redo log文件开始日志的lsn&#xff0c;占用8字节Log File Number&#xff0c;总是为0&#xff0c;占用4字节Created By&#x…