常用表单验证&&常用正则
表单验证&&常用正则
;(function(ELF){
ELF = ELF || (window.ELF = {});
var reg = {},
pattern = {
/*用户名校验*/
'userName' : '^[a-zA-Z0-9_-]{4,16}$',
/*姓名校验*/
'name' : '^[A-Za-z\.\u4e00-\u9fa5]+$',
/*手机号校验*/
'MPhone' : '^1[34578]\\d{9}$',
/*邮编校验*/
'zipCode' : '^\\d{6}$',
/*邮箱校验*/
'mail' : '^([A-Za-z0-9_\\-\\.])+@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$',
/*身份证简单校验 15位或者18位*/
'IDCode' : '^(([0-9]{14})|([0-9]{17}))[0-9X]$'
};
ELF.pattern = pattern;
ELF.reg = reg;
//验证用户名:数字、字母、- {4-16}
reg.testUserName = function(arg){
arg = arg || '';
if(typeof arg !== "string") {
throw new TypeError('"arg" is not string');
}
return /^[a-zA-Z0-9_-]{4,16}$/.test(arg);
}
//验证姓名: 字母或者中文
reg.testName = function( arg ){
arg = arg || '';
if(typeof arg !== "string") {
throw new TypeError('"arg" is not string');
}
return /^[A-Za-z\.\u4e00-\u9fa5]+$/.test( arg );
}
//验证手机 :1 [3、4、5、7、8] 11位数字
reg.testMPhone = function ( arg ){
arg = arg || '';
if(typeof arg !== "string") {
throw new TypeError('"arg" is not string');
}
return /^1[34578]\d{9}$/.test( arg );
}
//验证邮编 : 6位数字
reg.testZipCode = function(arg){
arg = arg || '';
if(typeof arg !== "string") {
throw new TypeError('"arg" is not string');
}
return /^\d{6}$/.test( arg );
}
//验证邮箱: [数字、字母、_、- ]@[数字、字母、_、- 、.].[字母{2-4}]
reg.testMail = function(arg){
arg = arg || '';
if(typeof arg !== "string") {
throw new TypeError('"arg" is not string');
}
return /^([A-Za-z0-9_\-\.])+@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(arg);
}
//匹配身份证:严格匹配
reg.testIDCode = function( sId ) {
sId = sId || '';
if(typeof sId !== "string") {
throw new TypeError('"sId" is not string');
}
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var iSum = 0;
var info = "";
var pass = true;
if(!/^\d{17}(\d|x)$/i.test(sId)){
info = "你输入的身份证长度或格式错误";
console.log( info );
return false;
}
sId = sId.replace(/x$/i, "a");
if(aCity[parseInt(sId.substr(0, 2))] == null){
info = "你的身份证地区非法";
console.log( info );
return false;
}
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())){
info = "身份证上的出生日期非法";
console.log( info );
return false;
}
for(var i = 17; i >= 0; i--){
iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
}
if(iSum % 11 != 1){
info = "你输入的身份证号非法";
console.log( info );
return false;
}
console.log(info);
//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
return pass;
}
})();
常用表单验证&&常用正则的更多相关文章
- 一个PHP常用表单验证类(基于正则)
一个基于正则表达式的PHP常用表单验证类,作者:欣然随风.这个表单判断类的功能有:验证是否为指定长度的字母/数字组合.验证是否为指定长度汉字.身 份证号码验证.是否是指定长度的数字.验证邮件地址.电话 ...
- php常用表单验证类用法实例
<?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母/数字组合 func ...
- iview表单验证之正则验证、函数验证
iview表单验证之正则 正则验证: 代码: loginRules: { stringLength: [ { required: true, message: '该字段不能为空', trigger: ...
- JavaScript常用表单验证正则表达式(身份证、电话号码、邮编、日期、IP等)
身份证正则表达式 //身份证正则表达式(15位)isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//身份证正则表达式 ...
- 前端表单验证常用的15个JS正则表达式
在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...
- 表单验证常用的JS正则表达式
在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...
- JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验 ...
- js实现表单验证 常用JS表单验证
CSS代码 @charset "gb2312"; /* CSS Document */ body,dl,dt,dd,div,form {padding:;margin:;} #he ...
- 关于JS中的常用表单验证+正则表达式
一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. <body> & ...
随机推荐
- MySQL数据库基础(四)(子查询与链接)
1.子查询简介 其中,所谓的"外层查询"并不是指"查找",指的是所有SQL语句的统称:结构化查询语言(Structured Query Language),简称 ...
- Servlet3.0+springmvc5+log4j2正确的开启姿势(WebLookUp)
前言 java社区占据市场份额比较大的日志组件由log4j 1.×,到logback,再到整合后的升级版 log4j 2.×,有网友测试后据说log4j2的性能最NB.于是开始往自己的springmv ...
- 手把手教你树莓派实现简易室内监控系统(A)
第一次写博文,有很多疏漏之处,然后受逼乎影响较深,希望大家多多包涵! _______________________________________________分割线是这样画的吧_________ ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记14
day14课程内容: 深浅拷贝 #浅拷贝只能拷贝一层s=[1,'a','b']s1=s.copy()#浅拷贝print(s1)#[1, 'a', 'b']s[0]=2print(s1,s)#[1, ' ...
- spring-boo hello world程序
作为一个程序猿,使用了spring好多年,现在有了spring-boot,也想尝尝鲜. 初听spring-boot,觉得很神秘,实际上就是集合了很多组件,再加上一些boot开发的启动和粘合程序. 个人 ...
- 如何在 window7 环境编译 zlib 库?
1.下载最新版本 zlib 库 `下载地址:http://www.zlib.net/ 2.打开vc14项目 解压下载的 zlib.zip 压缩包并打开zlib1211\zlib-1.2.11\cont ...
- CodeForces - 796D Police Stations bfs
思路:删除尽量多的边使得所有点都能在限制距离之内到达一个警局,删除边会形成多棵子树,最多只能k棵.其实就是以每个警局为根结点,把整棵树划分为以警局为根结点的k棵树,说明要删除的边的数量就是k-1条,即 ...
- ZOJ - 3261 逆向并查集
思路:很巧妙的解法.如果按照常规一边读入,一边合并并查集,删边实在没办法做. 首先读入所有的操作,把所有不会被删除的边加入并查集,然后从最后一个操作开始逆向操作,当遇到删边操作,就直接把这条边加入并查 ...
- UVa230 Borrowers
原题链接 UVa230 思路 这题输入时有一些字符串处理操作,可以利用string的substr()函数和find_last_of()函数更加方便,处理时不必更要把书名和作者对应下来,注意到原题书名的 ...
- AC Dream1069
这题的加密字符 - (Fibnacci % 26),如果得到的字符小于'a',就等于加密字符 - (Fibnacci % 26)+26. 获得题目的函数如下: void getItem(){ char ...