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() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...
随机推荐
- 简单的基于矩阵分解的推荐算法-PMF, NMF
介绍: 推荐系统中最为主流与经典的技术之一是协同过滤技术(Collaborative Filtering),它是基于这样的假设:用户如果在过去对某些项目产生过兴趣,那么将来他很可能依然对其保持热忱.其 ...
- poj3280
将给定字符串用最小代价(添加,删除)变为回文串. dp:dp[i][j]表示将i-j变为回文串的最小代价. 若s[i]==s[j],则dp[i][j]=dp[i+1][j-1] 否则,若s[i+1]- ...
- 使用 PLSQL 连接 Oracle9i 数据库
昨天用了Navicate连接Oracle数据库,不停的掉线,然后死机,只能重启Navicate,没办法,还是用回plsql吧,重装了一遍(之前重装系统后,电脑自带的公司原有的软件没啦) 先安装了Ora ...
- itext7知识点研究(PDF编辑)
取出pdf文档文字 String sourceFolder2 = "E:\\picture2\\租赁合同2.pdf"; PdfDocument doc = new PdfDocum ...
- Spring IOC容器的实现原理
1 概述 1.1 依赖反转模式 在Java中,一个复杂的功能一般都需要由两个或者两个以上的类通过彼此合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象的引用.如果这个获取依赖对象的过程需要自己去 ...
- 自学vue笔记 (二) : 实例与生命周期
一: 什么是实例 我们说了,Vue 应用都应该从构建一个 Vue 实例开始.它管理着挂载在它身上的所有内容,因此实例是一个根实例, 所有的组件都应该挂载在根实例上面.创建一个 Vue 实例,需要通过 ...
- 1 认识Jquery
一 代码风格和变量风格 1 链式操作风格 : (1)对同一对象不超三个操作的可以写在一行 (2)对于同一个对象的较多操作,建议每行写一个操作 (3)对于多个对象的少量操作,可以每个对象写一行,涉及子元 ...
- web自动化测试---测试中其他一些常用操作
一些其他常用操作如下: 1.最大化浏览器窗口 driver.maximize_window() 2.后退 driver.back() 3.前进 driver.forward() 4.刷新操作 driv ...
- CSS 将一个页面平均分成四个部分(div)
在项目中遇到需求,数据监控页面需要同时显示4个板块内容,如下图: CSS 如何将一个页面平均分成四个部分(div)呢? <!DOCTYPE html> <html lang=&quo ...
- 对nginx中location的认识
关于一些对location认识的误区 1.location的匹配顺序是“先匹配正则,在匹配普通”. location的匹配顺序其实是“先匹配普通,在匹配正则”.造成误解的原因是:正则匹配会覆盖普通匹配 ...