js前端数据验证JS工具
var regexEnum = {
intege : "^-?[1-9]\\d*$", // 整数
intege1 : "^[1-9]\\d*$", // 正整数
intege2 : "^-[1-9]\\d*$", // 负整数
num : "^([+-]?)\\d*\\.?\\d+$", // 数字
num1 : "^([+]?)\\d*$", // 正数(正整数 + 0)
num2 : "^-[1-9]\\d*|0$", // 负数(负整数 + 0)
num3 : "^([+]?)\\d*\\.?\\d+$", // 正数
decmal : "^([+-]?)\\d*\\.\\d+$", // 浮点数
decmal1 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", // 正浮点数
decmal2 : "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", // 负浮点数
decmal3 : "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$", // 浮点数
decmal4 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$", // 非负浮点数(正浮点数 + 0)
decmal5 : "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$", // 非正浮点数(负浮点数 +
// 0)
email : "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", // 邮件
color : "^[a-fA-F0-9]{6}$", // 颜色
url : "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", // url
chinese : "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$", // 仅中文
ascii : "^[\\x00-\\xFF]+$", // 仅ACSII字符
zipcode : "^\\d{6}$", // 邮编
mobile : "^(13|15|18|14)[0-9]{9}$", // 手机
ip4 : "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", // ip地址
notempty : "^\\S+$", // 非空
picture : "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", // 图片
jpg : "(.*)\\.(jpg|gif)$", // 图片
rar : "(.*)\\.(rar|zip|7zip|tgz)$", // 压缩文件
date : "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", // 日期
qq : "^[1-9]*[1-9][0-9]*$", // QQ号码
tel : "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", // 电话号码的函数(包括验证国内区号,国际区号,分机号)
username : "^\\w+$", // 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
letter : "^[A-Za-z]+$", // 字母
letter_u : "^[A-Z]+$", // 大写字母
letter_l : "^[a-z]+$", // 小写字母
letter_num : "^\\w+$", // 匹配由数字、26个英文字母或者下划线组成的字符串
idcard : "/(^/d{15}$)|(^/d{17}([0-9]|X)$)/", // 身份证
htmlcode : "^[^\\\\'\"<>@#$&]+$", // 禁止输入html代码(特殊字符)
uploadFile : "(.*)\\.(jpg|bmp|gif|png|jpeg|tif|pdf|doc|docx|xls|xlsx|ppt|pptx)$", // 图片
}; /**
* 校验文件扩展名
*
* @param str
* @returns {Boolean}
*/
function checkFile(str) {
if (isEmpty(str)) {
return true;
}
var strRegex = "(.jpg|.JPG|.gif|.GIF|.png|.PNG)$"; // 用于验证图片扩展名的正则表达式
var re = new RegExp(strRegex);
if (re.test(str)) {
return (true);
} else {
return (false);
}
} function checkExcelFile(str) {
if (isEmpty(str)) {
return true;
}
var strRegex = "(.xls)$";
var re = new RegExp(strRegex);
if (re.test(str)) {
return (true);
} else {
return (false);
}
} /**
* 正则校验
*
* @param format
* 格式
* @param val
* 值
*/
function checkFormat(format, val) {
if (isEmpty(val)) {
if ("notempty" == format) {
return false;
}
return true;
}
var reg = regexEnum[format];
var r = val.match(reg);
if (r == null)
return false;
return true;
} function isCardID(sId) {
if (isEmpty(sId)) {
return true;
}
var iSum = 0;
if (!/^\d{17}(\d|x)$/i.test(sId))
return "你输入的身份证长度或格式错误";
sId = sId.replace(/x$/i, "a");
if (aCity[parseInt(sId.substr(0, 2))] == null)
return "你的身份证地区非法";
sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-"
+ Number(sId.substr(12, 2));
var d = new Date(sBirthday.replace(/-/g, "/"));
if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d
.getDate()))
return "身份证上的出生日期非法";
for ( var i = 17; i >= 0; i--)
iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
if (iSum % 11 != 1)
return "你输入的身份证号非法";
return true;// aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
} // 短时间,形如 (13:04:06)
function isTime(str) {
if (isEmpty(str)) {
return true;
}
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) {
return false;
}
if (a[1] > 24 || a[3] > 60 || a[4] > 60) {
return false;
}
return true;
} //短时间,形如 (13:04)
function isTimeHM(str) {
if (isEmpty(str)) {
return false;
}
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})$/);
if (a == null) {
alert("hm"+a);
return false;
}
if (a[1] > 24 || a[3] > 60) {
alert("hm"+a[1]);
alert("hm"+a[3]);
return false;
}
return true;
} // 短日期,形如 (2003-12-05)
function isDate(str) {
if (isEmpty(str)) {
return true;
}
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (r == null)
return false;
var d = new Date(r[1], r[3] - 1, r[4]);
return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d
.getDate() == r[4]);
} // 长时间,形如 (2003-12-05 13:04:06)
function isDateTime(str) {
if (isEmpty(str)) {
return true;
}
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if (r == null)
return false;
var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3]
&& d.getDate() == r[4] && d.getHours() == r[5]
&& d.getMinutes() == r[6] && d.getSeconds() == r[7]);
} // 空字符串
function isEmpty(str) {
if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {
return true;
} else {
return false;
}
} function isNotEmpty(str) {
if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {
return false;
} else {
return true;
}
} // 数字最值(最小值,最大值,必须输入)
function isNumRange(str, minNum, maxNum) {
if (isEmpty(str)) {
return true;
}
var num = parseFloat(str);
if (!isEmpty(minNum) && num < minNum) {
return false;
} else if (!isEmpty(maxNum) && num > maxNum) {
return false;
} else {
return true;
}
} // 字符串最大长度
function isMaxLength(str, maxLength) {
if (isEmpty(str)) {
return true;
}
var len = str.length;
if (len > maxLength) {
return false;
} else {
return true;
}
} // 字符串最小长度
function isMinLength(str, minLength) {
if (isEmpty(str)) {
return true;
}
var len = str.length;
if (len < minLength) {
return false;
} else {
return true;
}
} // 小数精确度(maxL:整数部分长度,maxF:小数部分长度)
function isMaxLengthForDouble(str, maxL, maxF) {
if (isEmpty(str)) {
return true;
}
var vals = str.split("."); if ((vals[0].length > maxL) || (vals[1].length > maxF)) {
return false;
} else {
return true;
}
} // 字符串固定长度
function isLength(str, length) {
if (isEmpty(str)) {
return true;
}
var len = str.length;
if (len != length) {
return false;
} else {
return true;
}
} // 失去焦点时do
// obj校验(jquery)对象,objSpan提示对象, fun执行函数
function onBlurShow(obj, fun) {
obj.blur(fun);
} // 时间格式转化 date转化成String 方法date.format("时间格式")
Date.prototype.format = function(format) {
var o = {
"M+" : this.getMonth() + 1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
"S" : this.getMilliseconds()
// millisecond
};
if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (this.getFullYear() + "")
.substr(4 - RegExp.$1.length));
for ( var k in o)
if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
: ("00" + o[k]).substr(("" + o[k]).length));
return format;
}; // 最小日期
function isMinDate(date, minDate) {
if (isEmpty(date)) {
return true;
}
var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
var d1 = new Date(r1[1], r1[3] - 1, r1[4]);
var d2 = new Date();
d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
if (minDate != "now") {
var r2 = minDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
d2 = new Date(r2[1], r2[3] - 1, r2[4]);
} var t1 = d1.getTime();
var t2 = d2.getTime(); if (t1 < t2) {
return false;
} else {
return true;
} } // 最大日期
function isMaxDate(date, maxDate) {
if (isEmpty(date)) {
return true;
}
var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
var d1 = new Date(r1[1], r1[3] - 1, r1[4]);
var d2 = new Date();
d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
if (maxDate != "now") {
var r2 = maxDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
d2 = new Date(r2[1], r2[3] - 1, r2[4]);
} var t1 = d1.getTime();
var t2 = d2.getTime(); if (t1 > t2) {
return false;
} else {
return true;
} } // 字符串截取
function spliceStr(str) {
if (!isEmpty(str)) {
if (str.length > 5) {
str = str.substr(0, 5) + "..";
return str;
}
} else {
return "";
}
} /**
* 判断数组是否有重复元素
*
* @param elementArray
* @returns {Boolean}
*/
function isDuplicate(elementArray) {
var nary = elementArray.sort();
for ( var i = 0; i < nary.length; i++) {
if (nary[i] == nary[i + 1]) {
return true;
}
}
return false;
} /**
* 去掉字符串左边空格
*
* @param str
* @returns
*/
function ltrim(str) {
var pattern = new RegExp("^[\\s]+", "gi");
return str.replace(pattern, "");
} /**
* 去掉字符串右边空格
*
* @param str
* @returns
*/
function rtrim(str) {
var pattern = new RegExp("[\\s]+$", "gi");
return str.replace(pattern, "");
} /**
* 去掉字符串左右空格
*
* @param str
* @returns
*/
function trim(str) {
return rtrim(ltrim(str));
} // 开始时间 - 结束时间 yyyy-mm-dd
function check(startTime, endTime) {
if (startTime.length > 0 && endTime.length > 0) {
var startTmp = startTime.split("-");
var endTmp = endTime.split("-");
var sd = new Date(startTmp[0], startTmp[1], startTmp[2]);
var ed = new Date(endTmp[0], endTmp[1], endTmp[2]);
if (sd.getTime() > ed.getTime()) {
return false;
}
}
return true;
} // 格式 yyyy-MM
function checkTime(startTime, endTime) { if (startTime.length > 0 && endTime.length > 0) {
startTime = startTime + "/01";
endTime = endTime + "/01";
var startTimeTmp = startTime.replace(/-/g, "/");
var endTimeTmp = endTime.replace(/-/g, "/");
var d1 = new Date(Date.parse(startTimeTmp));
var d2 = new Date(Date.parse(endTimeTmp));
if (d1 > d2) {
return false;
}
}
return true;
} // 格式 HH:mm:ss
function compareTime(interviewDate, startTime, endTime) {
var startDate = interviewDate + " " + startTime;
var endDate = interviewDate + " " + endTime;
if (startDate.length > 0 && endDate.length > 0) { var startDateTemp = startDate.split(" ");
var endDateTemp = endDate.split(" ");
var arrStartDate = startDateTemp[0].split("-");
var arrEndDate = endDateTemp[0].split("-");
var arrStartTime = startDateTemp[1].split(":");
var arrEndTime = endDateTemp[1].split(":");
var allStartDate = new Date(arrStartDate[0], arrStartDate[1],arrStartDate[2], arrStartTime[0], arrStartTime[1],arrStartTime[2]);
var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2],arrEndTime[0], arrEndTime[1], arrEndTime[2]); if (allStartDate.getTime() >= allEndDate.getTime()) {
return false;
} else {
return true;
}
} else {
alert("时间不能为空");
return false;
}
} function CurentTime() {
var now = new Date();
var year = now.getFullYear(); // 年
var month = now.getMonth() + 1; // 月
var day = now.getDate(); // 日
var hh = now.getHours(); // 时
var mm = now.getMinutes(); // 分
var clock = year + "-";
if (month < 10)
clock += "0";
clock += month + "-";
if (day < 10)
clock += "0";
clock += day + " ";
if (hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10)
clock += '0';
clock += mm;
return (clock);
} function CurentYearMonth() {
var now = new Date();
var year = now.getFullYear(); // 年
var month = now.getMonth() + 1; // 月
var clock = year + "-";
if (month < 10)
clock += "0";
clock += month;
return (clock);
} // 是否在数组内
function in_array(needle, haystack) {
if (typeof needle == 'string' || typeof needle == 'number') {
for ( var i in haystack) {
if (haystack[i] == needle) {
return true;
}
}
}
return false;
} /**
* 去掉字符串最后一个逗号
* @param str
* @returns
*/
function delComma(str)
{
if(str.charAt(str.length-1) == ",")
{
str = str.substring(0, str.length-1);
}
return str;
} /**
* 比较开始时间和结束时间
* @param currDate
* @param inputDate
* @returns {Boolean}
*/
function judegeDate(currDate,inputDate){ if(currDate.length>0 && inputDate.length>0){
var startTmp=currDate.split("-");
var endTmp=inputDate.split("-");
var sd=new Date(startTmp[0],startTmp[1],startTmp[2]);
var ed=new Date(endTmp[0],endTmp[1],endTmp[2]);
if(sd.getTime() > ed.getTime()){
return false;
}
}
return true;
} /**
* 日期校验正则表达式
* @param str
* @returns {Boolean}
*/
function isdate(str){
var reg = /^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$/i;
if (reg.test(str)) return true;
return false;
} /**
* 格式化日期
* @param value
* @returns {String}
*/
function formatDate(value){
var d = new Date(value);
var mon = d.getMonth() + 1;
var day = d.getDate();
var hours = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
return d.getFullYear() + "-" + (mon >= 10 ? mon : "0" + mon) + "-" + (day >= 10 ? day : "0" + day) + " " + (hours >= 10 ? hours : "0" + hours) + ":" + (minute >= 10 ? minute : "0" + minute) + ":" + (second >= 10 ? second : "0" + second);
} function checkSearchDateTimeBox(strBeginId,strEndId){
var beginvalue = $('#' + strBeginId).datetimebox('getValue');
var endvalue = $('#' + strEndId).datetimebox('getValue');
if (endvalue != '' && beginvalue!=''){
return (endvalue >= beginvalue);
}
return true;
}
js前端数据验证JS工具的更多相关文章
- 【QRcode二维码】:使用JS前端插件QRcode.js生成二维码
1.先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode.js 是实现二 ...
- JS前端数据格式化
当我们从后台取了数据,但是我们希望在前台统一显示格式时,我们可能需要格式化数据. 今天正好总结一下前端JS格式化数据的几个方法: 1. toFixed() 方法 可把 Number 四舍五入为指定 ...
- JS 前端格式化JSON字符串工具
JSON格式化工具,简易实现.作为技术宅,直接上代码,供大家使用.前提:一定要引入jquery哦. <!DOCTYPE html> <html lang="en" ...
- JS前端数据多条件筛选(商品搜索)
有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛 ...
- 使用jquery.validate组件进行前端数据验证并实现异步提交前验证检查
学习如鹏网掌上组的项目开发,使用到了前端验证,视频里使用的ValidateForm验证框架,但是我使用的Hui的框架中使用的是jquery.validate验证框架 所以自行学习jquery.vali ...
- 【ASP.NET基础】客户端、服务器端的数据验证 + CKEditer
1, 客户端 用Javascript进行验证,直接提示用户输入的数据是否符合规范,是否合法. 这样体验行比较好,客户端立即就可以得到反馈,而且减少了服务器端的数据交互. 这样前端数据验证并不是很安全, ...
- asp.net core mvc视频A:笔记4-1.数据验证
开发建议:永远不要相信客户端提交过来的数据!!! 前端数据验证定位:提高用户体验,仅此而已! 后端数据验证定位:保证系统安全与数据完整!!! 实例:用户登录验证 定义一个用户登录类 在用户登录类基础上 ...
- .NET MVC model数据验证
MVC提供了很方便的数据验证,只需要在model里加入相关的正则等,那么就会在前台里生成相关的验证脚本.需要引用两个js文件: jquery.validate.min.js jquery.valida ...
- 我这么玩Web Api(二):数据验证,全局数据验证与单元测试
目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试 一.模型状态 - ModelState 我理解 ...
随机推荐
- nginx篇高级用法之基于TCP/UDP的四层调度
nginx 从1.9版本开始支持基于TCP/UDP的四层调度,在编译nginx时使用--with-stream开启该模块 支持TCP/UDP调度时,支持给所有的软件做调度器,例如:nfs smb ft ...
- NOIP模拟 36
又是sb错误丢rank1... T1加了一句特判,暴涨80分... 要不要这么残忍...我暴力其实打的很满的好吗QAQ T1 暴力写成$while(lim[j].id==i)$少写的特判是$(j< ...
- 爬虫学习--Day4(网页采集器的实现)
#UA: User-Agent {请求载体的身份标识}#(反爬机制)UA检测:门户网站的服务器回检测对应请求的载体身份标识,如果检测到请求的载体身份为某一款浏览器就说明该请求时一个正常的请求.但是,如 ...
- Python 定义动态变量
问题描述 在做数据处理时,对一些分组得来的数据,所做的操作大同小异,变量的命名也都拥有相同的结构,比如对每个月份的数据求均值.方差等统计量,变量的命名可取为“n月的均值”,“n月的方差”,抽象出来就是 ...
- Jmeter与压测相关概念
相关概念 RT(response time) 什么是RT? RT就是指系统在接收到请求和做出相应这段时间跨度 但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高, 比如说,如果存在 ...
- Zabbix-(一) 安装与部署
Zabbix-(一)安装与部署 一.前言 本文记录在Centos7.6平台 通过yum安装部署Zabbix 4.4 准备 Centos7.6 虚拟机一台(ip: 192.168.152.140) My ...
- 一个ip, 两个域名, 两个ssl, 访问多个不同的项目
在前面一篇中说过, 入了好几个坑. 后来使用了nginx+tomcat配置的方式. 终于成功了. 因为头一次使用nginx, 不知道具体怎么操作, 于是我在操作的时候, 按照以下几个步骤执行的: 导航 ...
- centos7 openssh 7.9.1 升级
由于项目构建时间比较长,近期安全检查发现openssh有漏洞.所以要升级openssh到7.9p1版本.由于ssh用于远程连接,所以要谨慎操作. 1. 依赖安装 OpenSSL版本:目前OpenSSH ...
- JS三座大山再学习(一、原型和原型链)
原文地址 ## 前言 西瓜君之前学习了JS的基础知识与三座大山,但之后工作中没怎么用,印象不太深刻,这次打算再重学一下,打牢基础.冲鸭~~ 原型模式 JS实现继承的方式是通过原型和原型链实现的,JS中 ...
- 领扣(LeetCode)第三大的数 个人题解
给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...