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输入框正则校验的更多相关文章

  1. js电话号码正则校验--座机和手机号

    1.最新的电话号码段: 移动:134(1349除外)135 136 137 138 139 147 150 151 152 157 158 159 182 183 184 187 188 联通: 13 ...

  2. JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)

    第一: 限制只能是整数 <input type = "text" name= "number" id = 'number' onkeyup= " ...

  3. js前台传数组,java后台接收转list,前后台用正则校验

    前台,传参数时,将数组对象转换成json串,后台java收到后用 JSONArray.fromObject 转成集合. 前台js:var params = {"FileNameList&qu ...

  4. AngularJS进阶(十三)JS利用正则表达式校验手机号

    JS利用正则表达式校验手机号 注:请点击此处进行充电! 绪 由于项目需求,需要在前端实现手机号码的校验.当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完 ...

  5. 正则校验:微信号,qq号,邮箱

    java判断微信号.手机.名字的正则表达 - willgos - 博客园https://www.cnblogs.com/solossl/p/5813106.html 微信号正则校验,qq正则,邮箱正则 ...

  6. 在Sublime Text 3 中安装SublimeLinter,Node.js进行JS&CSS代码校验

    转载自:http://www.wiibil.com/website/sublimelinter-jshint-csslint.html 在Sublime Text中安装SublimeLinter,No ...

  7. RegExp正则校验之Java及R测试

    前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用 ...

  8. JS输入框邮箱自动提示(带有demo和源码)(转载)

    今天在javascriptQQ群里面 有童鞋问到 有没有 "JS输入框邮箱自动提示"插件,即说都找遍了github上源码 都没有看到这样类似的插件,然后我想了下 "JS输 ...

  9. JS利用正则配合replace替换指定字符

    替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...

随机推荐

  1. accept:Invalid Argument

    错误 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int accept(int sockfd, ...

  2. WannaCry勒索病毒全解读,权威修复指南大集合

    多地的出入境.派出所等公安网络疑似遭遇了勒索蠕虫病毒袭击,已暂时停办出入境业务:加油站突然断网,不能支持支付宝.微信.银联卡等联网支付:大批高校师生电脑中的文件被蠕虫病毒加密,需要支付相应的赎金方可解 ...

  3. Javascript多线程

    最近项目中要用一个倒计时,但是当弹窗的时候倒计时会被阻塞,所以我想到使用Javascript多线程解决该问题. 虽然JavaScript是单线程的,但是通过worker可以让Javascript另外开 ...

  4. firewall 和 iptables 常用命令

    [参考文章]:Centos7 关闭防火墙 [参考文章]:Centos7 firewall防火墙常用配置 CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 ...

  5. Maven - Tips

    1- Maven的Settings http://maven.apache.org/settings.html 2- Maven设置代理 示例: <proxies> <proxy&g ...

  6. 如何在Mac下配置Github和Bitbucket的SSH

    --- title: 如何在Mac下配置Github和Bitbucket的SSH date: 2017-12-23 21:10:30 tags: - Mac - Git - Github catego ...

  7. ZolltyMVC配置-说明文档

    目前XML里支持的一级元素如下: <!-- 配置 -->     <xsd:element ref="mvc"/>     <xsd:element ...

  8. [每天解决一问题系列 - 0012] 如何通过程序获取IIS站点信息

    问题描述: 在WiX中需要判断某个站点是否存在,WiX没有这个能力,该怎么做呢? 解决方案: 解决方法就是写一个Custom Action来检测,实现的途径也有很多,现在想到了这么几个 1)Power ...

  9. 关于appendChild和insertBefore appendTo()和append

    appendChild和insertBefore(原生js) appendTo()和append(jquery)

  10. c++11并行、并发与多线程编程

    首先,我们先理解并发和并行的区别. 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行. 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并 ...