//数据校验
/**
*{type:"类型",notEmpty:true,regxp: reg,MaxLength: number,MinLength number,message: '错误提示信息'}
* 校验类型 type:phone(手机号)/mail(邮箱)/mount(整数)/money(金额)/passwd(密码)/reg(正则验证)/notNull(不能为空) 必填
* 是否可为空 Emptable: true(true可为空,false不能为空;默认为false)
* 正则匹配 regexp( 内容与该正则进行验证,type需要为reg,否则无效 message 错误提示信息 ) type为reg时必填
* 失败提示内容message: String type为reg/notNull时必填
* 例子:{type:phone,notEmpty:true}
* @constructor
*/
var TestData = function () {
var me = this;
//全体校验方法
me.TestAll = function(){
var InputList = $("[validata]");
var data = '';
var result = true;
for(var i=0;i<InputList.length;i++){
data = InputList[i].getAttribute("validata");
if(data){
data = me.strToJson(data);
if(!me.ifNull(data.type)){
var value = InputList[i].value;
if(!me.TestByType(data,value)){
return false;
}
}else{
console.log("type不能为空")
}
}
}
return result;
};
//根据type进行验证
me.TestByType = function (data,value) {
if(data.type == 'phone'){
if(value){
return me.isPhone(value);
}else{
return me.isEmpty('',data.Emptable,'手机不能为空')
}
}else if(data.type == 'mail'){
if(value){
return me.isMail(value);
}else{
return me.isEmpty('',data.Emptable,'邮箱不能为空')
} }else if(data.type == 'passwd'){
if(value){
return me.isPwd(value);
}else{
return me.isEmpty('',data.Emptable,'密码不能为空')
} }else if(data.type == 'reg'){
if(me.ifNull(data.regex)){
console.log('参数缺少正则表达式')
return false;
}else if(me.ifNull(data.message)){
console.log('参数message作为提示信息')
return false;
}
return me.regTset(value,data.regex,data.message) }else if(data.type == 'mount'){
if(value){
return me.isNumber(value); }else{
return me.isEmpty('',data.Emptable,'数量不能为空')
}
}else if(data.type == 'money'){
if(value){
return me.isMoney(value);
}else{
return me.isEmpty('',data.Emptable,'金额不能为空')
}
}else if(data.type == 'notNull'){
return me.isEmpty(value,data.Emptable,data.message)
}
}
//正则验证
me.regTset = function (o,regex,message) {
var reg = regex;
if(o){
if(!reg.test(o)) {
wrap.alert(message);//验证不通过提示
return false;
}
}else{
return me.isEmpty('',false,message);
} return true;
}
//密码校验
me.isPwd = function (o) {
return me.regTset(o,/^[0-9a-zA-Z]+$/,'密码格式错误');
}
//手机号校验
me.isPhone = function (o) {
// var phone_reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
var phone_reg = /^(1+\d{10})$/;
return me.regTset(o,phone_reg,'请输入有效的手机号码');
}
//邮箱校验
me.isMail = function (o) {
var mail_reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
return me.regTset(o,mail_reg,'请输入有效的邮箱');
}
//金额校验
me.isMoney = function (o) {
var money_reg = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
return me.regTset(o,money_reg,'请输入有效的金额');
}
//数量校验
me.isNumber = function (o) {
var number_reg = /^[1-9]\d*$/;
return me.regTset(o,number_reg,'请输入正确的数量');
}
//是否允许为空 允许为空 返回true 不允许为空 且为空,返回false 打印错误信息
me.isEmpty = function(o,emptable,message) {
if(emptable){
return true;
}else{
if(o == undefined || o == "" || o == null){
wrap.alert(message);
return false;
}
return true;
} }
//是否为null
me.ifNull = function (o) {
return o == undefined || o == "" || o == null
}
//string转json
me.strToJson = function (str){
var json = eval('(' + str + ')');
return json;
}
}

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. System.Web.Optimization对脚本和样式表的压缩操作

    1 是否允许样式表压缩 BundleTable.EnableOptimizations = true; 在MVC项目中的 BundleConfig操作中是微软已经给我们准备好的CSS和JS压缩,我们可 ...

  2. 利用sqlalchemy读取数据库 和pandas的Dataframe对象 互相生成

    #导入pandas import pandas as pd import numpy as np #导入SqlAlchemy from sqlalchemy import create_engine ...

  3. react-native实现电影列表

    页面运行效果 代码: import React, { Component } from "react"; import { Image, FlatList, StyleSheet, ...

  4. Button中command后面函数添加参数解决方法

    添加按钮,按钮的功效由command=函数名,后面的函数实现,但是如果直接写函数名,碰上那些需要参数的函数就会出错 因此,有个简单方法command=lambda:函数名(参数1,参数2.....) ...

  5. 第十八节,TensorFlow中使用批量归一化(BN)

    在深度学习章节里,已经介绍了批量归一化的概念,详情请点击这里:第九节,改善深层神经网络:超参数调试.正则化以优化(下) 神经网络在进行训练时,主要是用来学习数据的分布规律,如果数据的训练部分和测试部分 ...

  6. (线性回归)Liner Regression简单应用

    警告:本文为小白入门学习笔记 数据连接: http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearni ...

  7. Python递归_打印节点信息

    Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...

  8. java io系列25之 PrintWriter (字符打印输出流)

    更多内容请参考:java io系列01之 "目录" PrintWriter 介绍 PrintWriter 是字符类型的打印输出流,它继承于Writer.PrintStream 用于 ...

  9. 6.适配器模式(Adapter Pattern)

    适配(转换)的概念无处不在......适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口.例如:二转换为三箱插头,将高电压转换为低电压等.    动机(Motivate):    在 ...

  10. Linux记录-sysctl.conf优化方案

    Sysctl是一个允许您改变正在运行中的Linux系统的接口.它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能.用sysctl可以读取设置超过五百 ...