JS输入框正则校验
1. 开发中需要对etl组件统一进行input输入框校验,允许为空,可以不校验,默认校验长度和特殊字符,代码如下,记录以备复用。
/**
* 数据值校验工具类
*/
var checkService = {
// 不校验
none: function () {
return true;
}, //非空校验
isEmpty:function (str) {
if (str == null || str == "") return false;
},
// 只能输入数字[0-9]
isDigits: function (str) {
if (str == null || str == "") return true;
var reg = /^\d+$/;
return reg.test(str);
}, // 匹配english
isEnglish: function (str) {
if (str == null || str == "") return true;
var reg = /^[A-Za-z]+$/;
return reg.test(str);
}, // 匹配integer(包含正负)
isInteger: function (str) {
if (str == null || str == "") return true;
var reg = /^[-\+]?\d+$/;
return reg.test(str);
}, // 匹配汉字
isChinese: function (str) {
if (str == null || str == "") return true;
var reg = /^[\u4e00-\u9fa5]+$/;
return reg.test(str);
}, // 匹配中文(双字节字符,包括汉字和符号)
isChineseChar: function (str) {
if (str == null || str == "") return true;
var reg = /^[\u0391-\uFFE5]+$/;
return reg.test(str);
}, // 匹配URL
isUrl: function (str) {
if (str == null || str == "") return true;
var reg = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"])*$/;
return reg.test(str);
}, // 字符验证,只能包含中文、英文、数字、下划线、空格。
stringCheck: function (str) {
if (str == null || str == "") return true;
var reg = /^[a-zA-Z0-9\u4e00-\u9fa5_ ]+$/;
return reg.test(str);
}, //字符长度校验(最长64位)
stringLengthCheck: function (str, length) {
if (str == null || str == "") return true;
length = length || 64;
if (str.length > length) return false;
return true;
},
//IP格式验证
isIP: function (str) {
if (str == null || str == "") return true;
var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
return reg.test(str);
}
};
2. 给需要校验的input加上[data-vaild]属性:
data-valid=“校验函数名1 校验函数名2”(多种校验,校验名以空格区分)
- html中给每个带有data-attribute属性的input元素绑定data-valild属性:
<input id="limit" type="number" data-attribute="limit" value="0" class="width-100" data-valid="isDigits stringLengthCheck"/>
- js中给input框绑定blur函数:
/**
* 添加校验
* @param $div
*/
StencilsEditor.prototype.bindCheck = function ($div) {
//添加input校验
$div.find("input[data-attribute]").on('blur', function () {
var $this = $(this);
var val = $this.val();
var valid = $this.data("valid") || "stringCheck stringLengthCheck";
var valids = valid.split(" ")
for (var i in valids) {
var check = valids[i];
if (!checkService[check](val)) {
$this.addClass("has-error");
$this.data("errorMsg", "errorMsg_" + check);
break;
}
$this.removeClass("has-error");
}
});
};
JS输入框正则校验的更多相关文章
- js电话号码正则校验--座机和手机号
1.最新的电话号码段: 移动:134(1349除外)135 136 137 138 139 147 150 151 152 157 158 159 182 183 184 187 188 联通: 13 ...
- JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)
第一: 限制只能是整数 <input type = "text" name= "number" id = 'number' onkeyup= " ...
- js前台传数组,java后台接收转list,前后台用正则校验
前台,传参数时,将数组对象转换成json串,后台java收到后用 JSONArray.fromObject 转成集合. 前台js:var params = {"FileNameList&qu ...
- AngularJS进阶(十三)JS利用正则表达式校验手机号
JS利用正则表达式校验手机号 注:请点击此处进行充电! 绪 由于项目需求,需要在前端实现手机号码的校验.当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完 ...
- 正则校验:微信号,qq号,邮箱
java判断微信号.手机.名字的正则表达 - willgos - 博客园https://www.cnblogs.com/solossl/p/5813106.html 微信号正则校验,qq正则,邮箱正则 ...
- 在Sublime Text 3 中安装SublimeLinter,Node.js进行JS&CSS代码校验
转载自:http://www.wiibil.com/website/sublimelinter-jshint-csslint.html 在Sublime Text中安装SublimeLinter,No ...
- RegExp正则校验之Java及R测试
前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用 ...
- JS输入框邮箱自动提示(带有demo和源码)(转载)
今天在javascriptQQ群里面 有童鞋问到 有没有 "JS输入框邮箱自动提示"插件,即说都找遍了github上源码 都没有看到这样类似的插件,然后我想了下 "JS输 ...
- JS利用正则配合replace替换指定字符
替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...
随机推荐
- Linux下解压.tar.xz格式文件的方法
前言 对于xz这个压缩相信很多人陌生,但xz是绝大数linux默认就带的一个压缩工具,xz格式比7z还要小. 今天在下载Node.js源码包的时候遇到的这种压缩格式.查了一下资料,这里进行一下记录,分 ...
- LeetCode: 102_Binary Tree Level Order Traversal | 二叉树自顶向下的层次遍历 | Easy
题目:Binay Tree Level Order Traversal Given a binary tree, return the level order traversal of its nod ...
- Spring Boot 集成 Mybatis 实现双数据源
这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离. 添加依赖 加入Mybatis启动器,这里添加了D ...
- LeetCode--No.015 3Sum
15. 3Sum Total Accepted: 131800 Total Submissions: 675028 Difficulty: Medium Given an array S of n i ...
- vue安装及axios、stylus、iview的安装流程整理
现在做的项目中主要用到以下几个安装包,所以整理下流程: 使用命令行工具npm新创建一个vue项目 vue中axios的安装和使用 在vue项目中stylus的安装及使用 如何在vue中全局引入styl ...
- C# 串口类SerialPort的使用方法
序言:最近做了一个智能体育项目——跆拳道积分系统,硬件部分会向软件传入振动值等数据,链接方式为串口,所以用到SerialPort类. 值得注意的是: DataReceived 方法,当串口缓冲区有数据 ...
- localStorage的存储、获取、删除操作
var store={ // 保存 save:function(key,value){ localStorage.setItem(key,JSON.stringify(value)); }, // 获 ...
- spring cloud+.net core搭建微服务架构:Api授权认证(六)
前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...
- Tsql2008查询性能优化第一章---APPLY
APPLY运算符涉及以下两个步骤中的一步或两步(取决于APPLY的类型): 1.A1把右表表达式应用于左表的行. 2.A2:添加外部行. Ap ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十六):容器部署项目
容器部署项目 这一章我们引入docker,采用docker容器的方式部署我们的项目. 首先需要有一个linux环境,并且安装 java 和 maven 以及 docker 环境,这个教程多如牛毛,不再 ...