1. //数据校验
  2. /**
  3. *{type:"类型",notEmpty:true,regxp: reg,MaxLength: number,MinLength number,message: '错误提示信息'}
  4. * 校验类型 type:phone(手机号)/mail(邮箱)/mount(整数)/money(金额)/passwd(密码)/reg(正则验证)/notNull(不能为空) 必填
  5. * 是否可为空 Emptable: true(true可为空,false不能为空;默认为false)
  6. * 正则匹配 regexp( 内容与该正则进行验证,type需要为reg,否则无效 message 错误提示信息 ) type为reg时必填
  7. * 失败提示内容message: String type为reg/notNull时必填
  8. * 例子:{type:phone,notEmpty:true}
  9. * @constructor
  10. */
  11. var TestData = function () {
  12. var me = this;
  13. //全体校验方法
  14. me.TestAll = function(){
  15. var InputList = $("[validata]");
  16. var data = '';
  17. var result = true;
  18. for(var i=0;i<InputList.length;i++){
  19. data = InputList[i].getAttribute("validata");
  20. if(data){
  21. data = me.strToJson(data);
  22. if(!me.ifNull(data.type)){
  23. var value = InputList[i].value;
  24. if(!me.TestByType(data,value)){
  25. return false;
  26. }
  27. }else{
  28. console.log("type不能为空")
  29. }
  30. }
  31. }
  32. return result;
  33. };
  34. //根据type进行验证
  35. me.TestByType = function (data,value) {
  36. if(data.type == 'phone'){
  37. if(value){
  38. return me.isPhone(value);
  39. }else{
  40. return me.isEmpty('',data.Emptable,'手机不能为空')
  41. }
  42. }else if(data.type == 'mail'){
  43. if(value){
  44. return me.isMail(value);
  45. }else{
  46. return me.isEmpty('',data.Emptable,'邮箱不能为空')
  47. }
  48.  
  49. }else if(data.type == 'passwd'){
  50. if(value){
  51. return me.isPwd(value);
  52. }else{
  53. return me.isEmpty('',data.Emptable,'密码不能为空')
  54. }
  55.  
  56. }else if(data.type == 'reg'){
  57. if(me.ifNull(data.regex)){
  58. console.log('参数缺少正则表达式')
  59. return false;
  60. }else if(me.ifNull(data.message)){
  61. console.log('参数message作为提示信息')
  62. return false;
  63. }
  64. return me.regTset(value,data.regex,data.message)
  65.  
  66. }else if(data.type == 'mount'){
  67. if(value){
  68. return me.isNumber(value);
  69.  
  70. }else{
  71. return me.isEmpty('',data.Emptable,'数量不能为空')
  72. }
  73. }else if(data.type == 'money'){
  74. if(value){
  75. return me.isMoney(value);
  76. }else{
  77. return me.isEmpty('',data.Emptable,'金额不能为空')
  78. }
  79. }else if(data.type == 'notNull'){
  80. return me.isEmpty(value,data.Emptable,data.message)
  81. }
  82. }
  83. //正则验证
  84. me.regTset = function (o,regex,message) {
  85. var reg = regex;
  86. if(o){
  87. if(!reg.test(o)) {
  88. wrap.alert(message);//验证不通过提示
  89. return false;
  90. }
  91. }else{
  92. return me.isEmpty('',false,message);
  93. }
  94.  
  95. return true;
  96. }
  97. //密码校验
  98. me.isPwd = function (o) {
  99. return me.regTset(o,/^[0-9a-zA-Z]+$/,'密码格式错误');
  100. }
  101. //手机号校验
  102. me.isPhone = function (o) {
  103. // var phone_reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  104. var phone_reg = /^(1+\d{10})$/;
  105. return me.regTset(o,phone_reg,'请输入有效的手机号码');
  106. }
  107. //邮箱校验
  108. me.isMail = function (o) {
  109. var mail_reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  110. return me.regTset(o,mail_reg,'请输入有效的邮箱');
  111. }
  112. //金额校验
  113. me.isMoney = function (o) {
  114. var money_reg = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
  115. return me.regTset(o,money_reg,'请输入有效的金额');
  116. }
  117. //数量校验
  118. me.isNumber = function (o) {
  119. var number_reg = /^[1-9]\d*$/;
  120. return me.regTset(o,number_reg,'请输入正确的数量');
  121. }
  122. //是否允许为空 允许为空 返回true 不允许为空 且为空,返回false 打印错误信息
  123. me.isEmpty = function(o,emptable,message) {
  124. if(emptable){
  125. return true;
  126. }else{
  127. if(o == undefined || o == "" || o == null){
  128. wrap.alert(message);
  129. return false;
  130. }
  131. return true;
  132. }
  133.  
  134. }
  135. //是否为null
  136. me.ifNull = function (o) {
  137. return o == undefined || o == "" || o == null
  138. }
  139. //string转json
  140. me.strToJson = function (str){
  141. var json = eval('(' + str + ')');
  142. return json;
  143. }
  144. }

js数据校验插件的更多相关文章

  1. 开源后端数据校验插件Validate.Net,类似Validate.js

    介绍 Validate.Net将Validate.js移植到.Net平台,可以更方便.更快捷的校验实体内属性值是否合法.内置多种常规数据校验规则(校验必填.校验字符串长度区间.校验最大最小值.校验值区 ...

  2. HTML JS 数据校验

    用到了html字符串校验,这里记录一下. <html> <head> <script type="text/javascript"> funct ...

  3. jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...

  4. Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验

    安装方式有如下几种. 1.最常用的安装方式. # 进入atom插件文件夹 cd ~/.atom/packages/ # git clone 插件源文件 git clone https://github ...

  5. springboot使用validation 插件做数据校验

    不多说废话. 首先,我们需要在入参实体对象中,使用注解,控制 @Datapublic class UpdateShufflingRequest { private String shuffling_l ...

  6. JavaScript的案例(数据校验,js轮播图,页面定时弹窗)

    1.数据校验            步骤            1.确定事件(onsubmit)并绑定一个函数            2.书写这个函数,获取数据,并绑定id            3. ...

  7. Knockout.js 数据验证之插件版和无插件版

    本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你 ...

  8. JS常用数据校验集合(adding)

    常用数据校验集合 var _validator = { MAIL_REGEX: /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,; ...

  9. 【JAVAWEB学习笔记】28_jqueryAjax:json数据结构、jquery的ajax操作和表单校验插件

    Ajax-jqueryAjax 今天内容: 1.json数据结构(重点) 2.jquery的ajax操作(重点) 3.jquery的插件使用   一.json数据结构 1.什么是json JSON(J ...

随机推荐

  1. 第三十三篇-TabLayout的使用

    效果图: 最上方是一个TabLayout,有三个部分,新闻.财经.娱乐,下方是一个ViewPaper,里面包含三个fragment,分别对应三个xml和java class. 第一个Fragment里 ...

  2. jquery+ajax无刷新加载数据,新闻浏览更多

      <script type="text/javascript"> $(document).ready(function (){ $(window).scroll(fu ...

  3. 3D游戏的角色移动

    * -----英雄的移动控制 * * * * */ using System.Collections; using System.Collections.Generic; using UnityEng ...

  4. goto语句

    让程序直接跳到自定义标签位置 public static void Main(string[] args) { ; goto myLabel;AppDomainInitializer//直接跳到标签m ...

  5. PHP – 在类中使用array_filter时回调函数的问题

    了一个类处理好友,其中有一个方法用来同步好友,而这个方法中需要从微博传来的关注列表和粉丝列表中,找到互相关注的用户,记录一下经验,主要还是关于回调函数. 按照我最初的理解,这样写就可以了 privat ...

  6. lucene之中文分词及其高亮显示(五)

    中文分词:即换个分词器 Analyzer analyzer = new StandardAnalyzer();// 标准分词器     换成  SmartChineseAnalyzer analyze ...

  7. 【3D动画建模设计工具】Maxon Cinema 4D Studio for Mac 20.0

    图标 Icon   软件介绍 Description Maxon Cinema 4D Studio R20 ,是由德国公司Maxon Computer一款适用于macOS系统的3D动画建模设计工具,是 ...

  8. bzoj1040 基环树森林dp

    https://www.lydsy.com/JudgeOnline/problem.php?id=1040 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社 ...

  9. HDU5542 BIT优化dp

    http://acm.hdu.edu.cn/showproblem.php?pid=5542 题意:求严格递增的长度为M的序列的组数. 当dp的优化方案不那么容易一眼看出来的时候,我们可以考虑先写一个 ...

  10. 解决openoffice进程异常退出的办法

    步骤1 编写脚本 openoffice.sh #!/usr/bin/bash OPENOFFICEPID=`ps -ef|grep "/opt/openoffice4/program/sof ...