js 格式验证总结
1.身份证号验证

var Common = {
//身份证号验证
IsIdCardNo: function (IdCard) {
var reg = /^\d{15}(\d{2}[0-9X])?$/i;
if (!reg.test(IdCard)) {
return false;
} if (IdCard.length == 15) {
var n = new Date();
var y = n.getFullYear();
if (parseInt("19" + IdCard.substr(6, 2)) < 1900 || parseInt("19" + IdCard.substr(6, 2)) > y) {
return false;
} var birth = "19" + IdCard.substr(6, 2) + "-" + IdCard.substr(8, 2) + "-" + IdCard.substr(10, 2);
if (!Common.IsDate(birth)) {
return false;
}
}
if (IdCard.length == 18) {
var n = new Date();
var y = n.getFullYear();
if (parseInt(IdCard.substr(6, 4)) < 1900 || parseInt(IdCard.substr(6, 4)) > y) {
return false;
} var birth = IdCard.substr(6, 4) + "-" + IdCard.substr(10, 2) + "-" + IdCard.substr(12, 2);
if (!Common.IsDate(birth)) {
return false;
} iW = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); iSum = 0;
for (i = 0; i < 17; i++) {
iC = IdCard.charAt(i);
iVal = parseInt(iC);
iSum += iVal * iW[i];
} iJYM = iSum % 11;
if (iJYM == 0) sJYM = "1";
else if (iJYM == 1) sJYM = "0";
else if (iJYM == 2) sJYM = "x";
else if (iJYM == 3) sJYM = "9";
else if (iJYM == 4) sJYM = "8";
else if (iJYM == 5) sJYM = "7";
else if (iJYM == 6) sJYM = "6";
else if (iJYM == 7) sJYM = "5";
else if (iJYM == 8) sJYM = "4";
else if (iJYM == 9) sJYM = "3";
else if (iJYM == 10) sJYM = "2"; var cCheck = IdCard.charAt(17).toLowerCase();
if (cCheck != sJYM) {
return false;
}
}
return true;
}, //日期验证
IsDate: function (strDate) {
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;
strDateArray = strDate.split(strSeparator);
if (strDateArray.length != 3) return false;
intYear = parseInt(strDateArray[0], 10);
intMonth = parseInt(strDateArray[1], 10);
intDay = parseInt(strDateArray[2], 10);
if (isNaN(intYear) || isNaN(intMonth) || isNaN(intDay)) return false;
if (intMonth > 12 || intMonth < 1) return false;
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intDay > 31 || intDay < 1)) return false;
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30 || intDay < 1)) return false;
if (intMonth == 2) {
if (intDay < 1) return false;
boolLeapYear = false;
if ((intYear % 100) == 0) {
if ((intYear % 400) == 0) boolLeapYear = true;
}
else {
if ((intYear % 4) == 0) boolLeapYear = true;
}
if (boolLeapYear) {
if (intDay > 29) return false;
}
else {
if (intDay > 28) return false;
}
}
return true;
}
};

2.QQ

Common.Valid = {
//验证qq号码
QQNum: function (str) {
var reg = /^\s*\d{4,12}\s*$/g;
return reg.test(str);
},
//空或有效格式验证器
EmptyOrValid: function (validFunc) {
var func = validFunc;
if ($.type(validFunc) == "string")
func = this[$.trim(validFunc)];
return function (str) {
return $.trim(str) === "" || func(str);
}
}
};

3.手机、电话、传真验证

$(function () {
String.prototype.isMobile = function () {
return (/^(?:13\d|15[012356789]|18[0256789]|147)-?\d{5}(\d{3}|\*{3})$/.test($.trim(this)));
} String.prototype.isTel = function () {
//"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(1-4位)"
return (/^(([0\+]\d{2,3}-)?(0\d{2,3}\-)?([2-9]\d{6,7})+(\-\d{1,4})?$/.test($.trim(this)));
}
String.prototype.isTelMobile = function () {
//"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(1-4位)"
return (/^(([0\+]\d{2,3}-)?(0\d{2,3}\-)?([2-9]\d{6,7})+(\-\d{1,4})?|(?:13\d|15[012356789]|18[0256789]|147)-?\d{5}(\d{3}|\*{3}))?$/.test($.trim(this)));
}
});

使用示例:

if ($.trim($("#Phone").val()) != "" || $.trim($("#Fax").val()) != "") {
if (!$.trim($("#Phone").val()).isTel()) {
Common.ShowInfo("请输入正确的电话号码!");
return;
}
if (!$.trim($("#Fax").val()).isTel()) {
Common.ShowInfo("请输入正确的传真号!");
return;
}
}
if ($.trim($("#MobilePhone").val()) != "") {
if (!$.trim($("#MobilePhone").val()).isMobile()) {
Common.ShowInfo("请输入正确的手机号码!");
return;
}
}
$(function () { });

4. jquery 常用验证

$(function () {
// jQuery.validator增加IP验证
jQuery.validator.addMethod("code", function (value, element) {
return this.optional(element) || (/^[a-zA-Z0-9]+$/.test(value));
}, "请输入英文、数字");
//jQuery.validator增加手机验证
jQuery.validator.addMethod("isMobile", function (value, element) {
var pattern = /^(?:13\d|15[012356789]|18[0256789]|147)-?\d{5}(\d{3}|\*{3})$/;
return this.optional(element) || (pattern.test(value));
}, "请输入英文、数字");
var v = $('#frmInput').validate({
rules: {
Name:{ required: false, code: true },//
Email: { required: false, email: true },
mobile:{ required: false, isMobile: true }
},
messages: {
Name: { required: "请输入用户名!", email: "请输入正确的用户名!" },
Email: { required: "请输入邮箱!", email: "请输入正确的邮箱地址!" },
mobile:{ required: false, isMobile: "输入正确的手机号!"}
}
});
});

使用示例:

<script type="text/javascript">
$(function () {
//以上的验证代码
});
var Input = {};
Input.Save = function (e) {
var frm = $(e).parents("form").first();
if (!$(frm).valid())
return; $.post($(frm).attr("action"), $(frm).serialize(), function (data) {
if (data.IsOK) {
alert(data.Description);
}
else
alert(data.Description);
});
}
</script>
<form name="frmInput" id="frmInput" method=post action="@Url.Action(@ViewContext.RouteData.Values["Action"].ToString())" >
</form>

5.多行文本框的长度进行验证

<script type="text/javascript">
//对textarea 长度进行验证
jQuery.fn.checkLength = function (parameters) {
defaults = { min: 1, max: 120 };//设置默认值
jQuery.extend(defaults, parameters);
// 当前textarea 的值
var taValue = $(this).val();
var len = taValue.length;
if (len >= defaults.max) {
return false;
} else if (len <= defaults.min) {
return false;
} else {
return true;
}
}
var Input = {};
Input.Save = function (e) {
if (!$("#Content").checkLength({ min: 1, max: 9999 })) {
alert("内容不能为空!");
return;
}
};
</script >

5. 密码验证(不能包含空格)

String.prototype.hasSpace = function () {
return (/(^\s+)|(\s+$)|(^\S*\s*\S$)/.test($.trim(this)));
}; if($("#Password").val().hasSpace()){//判断
//
}

js 格式验证总结的更多相关文章
- js 格式验证大全
1.身份证号码验证: var Common = { //身份证号验证 IsIdCardNo: function (IdCard) { var reg = /^\d{15}(\d{2}[0-9X])?$ ...
- js日期格式验证
js日期格式验证 <input type="text" maxLength='10' onkeyup='checkDate(this.value,jQuery(this)); ...
- 解决jquery.validate.js的验证bug
版本提示:jq为1.4.4, jquery.validate 为jQuery validation plug-in 1.7 问题: a.选填选项,如邮箱设置格式验证,那么情况输入框,验证label变成 ...
- JS脚本验证大全
/** * 2009-10-01 * 贺 臣 * 情 缘 * js各种表单数据验证 *//***************************************************** ...
- vue动态加载图片,取消格式验证
vue 一. 动态加载图片 (以vue模板为例) app.vue 代码如下: <template> <div id="app"> <img :src= ...
- 正则表达式控制Input输入内容 ,js正则验证方法大全
https://blog.csdn.net/xushichang/article/details/4041507 //输入姓名的正则校验 e.currentTarget.value = e.curre ...
- jQuery实现18位身份证输入隔位添加空格及格式验证
说明:jQuery实现身份证输入添加空格,表单验证身份证输入,并且输入时前6位添加一个空格,中间8位后添加一个空格,及身份证格式验证 参考:基于jquery实现的银行卡号每隔4位自动插入空格的实现代码 ...
- HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)
原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代 ...
- Js通用验证
//-----------------------------------------------------js 验证封装 zhy2014-07-10------------------------ ...
随机推荐
- 如何解决Angular 2 的templateUrl和styleUrl的路径问题?
参考地址:https://github.com/kittencup/angular2-ama-cn/issues/18 前言: templateUrl表示的是组件在浏览器中运行时依赖的模板地址,所以在 ...
- 序列化、反序列化(实体类或要序列化的对象类必须实现Serializable接口)
package com.phone.shuyinghengxie; import java.io.Serializable; /* 一个类的对象要想序列化成功,必须满足两个条件: 该类必须实现 jav ...
- ALV详解:Function ALV(一)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 读Effective Java笔记之one:static Factory methods instead of Constructors (静态工厂方与构造器)
获取类的实例的方法有很多种,在这很多种方法中,它们各有优缺,各有特点.这里,只介绍2中方法 1.使用构造方法 public class Person { private String sex; /** ...
- Spark ML聚类分析之k-means||
今天更新了电脑上的spark环境,因为上次运行新的流水线的时候,有的一些包在1.6.1中并不支持 只需要更改系统中用户的环境变量即可 然后在eclipse中新建pydev工程,执行环境是python3 ...
- css 集锦。
可以是 链接的下划线 去掉. a {text-decoration: none} position:absolute 绝对定位 position:relative 相对定位 ie 图片失真 -ms ...
- JSP Filter,GZIP压缩响应流
url:http://hi.baidu.com/xhftx/blog/item/fbc11d3012648711ebc4af59.html 关键词:JSP,Filter,Servlet,GZIP 现在 ...
- js中event.keyCode用法及keyCode对照表
HTML 用户名:<input type="text" id="UserAccount" onKeyPress="JumpByEnter(Use ...
- Java可视化AWT
AWT 总体上Swing组件替代了绝大部分AWT组件,对AWT图形用户界面编程有极好的补充和加强. package ch11; import java.awt.*; /** * Created by ...
- iOS——为Xcode编译POCO C++静态库
一.POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接.数据库管理以及服务器,适用于跨平台.嵌入式. 二.为Xcode编译POCO C+ ...