身份证号
// 验证身份证号码
var city = {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:'国外 '};
function check_idcard(n)
{
var im = 0;
var info, i, bd;
if(n.length != 18)
{
return false;
}
n = n.replace(/x$/i,"a");
if(city[parseInt(n.substr(0,2))] == null)
{
return false;
}
bd = n.substr(6,4)+"-"+Number(n.substr(10,2))+"-"+Number(n.substr(12,2));
var d = new Date(bd.replace(/-/g,"/"))
if(bd != (d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
{
return false;
}
for(i = 17; i >= 0; i--)
{
im += (Math.pow(2,i) % 11) * parseInt(n.charAt(17 - i),11)
}
if(im % 11 != 1)
{
return false;
}
return true;
}
手机号
var validateMobilePhone = (rule, value, callback) => {
if (value === '') {
callback(new Error('负责人手机号不可为空'));
} else {
if (value !== '') {
var reg=/^1[3456789]\d{9}$/;
if(!reg.test(value)){
callback(new Error('请输入有效的手机号码'));
}
}
callback();
}
};
邮箱
var validateEmail = (rule, value, callback) => {
if (value === '') {
callback(new Error('请正确填写邮箱'));
} else {
if (value !== '') {
var reg=/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if(!reg.test(value)){
callback(new Error('请输入有效的邮箱'));
}
}
callback();
}
};
密码
var validatePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请设置正确格式的密码'));
} else if(value.length < 6){
callback(new Error('密码长度最小6位'));
}else{
callback();
}
};
固定电话
var validatePhone = (rule, value, callback) => {
if (value === '') {
callback(new Error('机构电话不可为空'));
} else {
if (value !== '') {
var reg =/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
if(!reg.test(value)){
callback(new Error('请输入正确的手机号或者座机号格式为:0000-0000000'));
}
}
callback();
}
};
微信号
var validateWeixin = (rule, value, callback) => {
if (value === '') {
callback(new Error('微信号不能为空'));
}else{
var reg= /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/;
if(!reg.test(value)){
callback(new Error('请输入正确的微信号码'));
}else{
callback();
}
}
};
定义过滤器(匹配第一个字符与最后一个字符中间用***代替 防止信息泄露)
exports.phoneFilter = function (params) {
if(params.length >1 ){
return params.replace(/^(.).*(.)$/,"$1***$2")
}else{
return params+'***'
}
}
用户名
//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出 true
console.log(uPattern.test("caibaojian"));
密码强度
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+pPattern.test("caibaojian#"));
整数
//正整数正则
var posPattern = /^\d+$/;
//负整数正则
var negPattern = /^-\d+$/;
//整数正则
var intPattern = /^-?\d+$/;
//输出 true
console.log(posPattern.test("42"));
//输出 true
console.log(negPattern.test("-42"));
//输出 true
console.log(intPattern.test("-42"));
数字
//正数正则
var posPattern = /^\d*\.?\d+$/;
//负数正则
var negPattern = /^-\d*\.?\d+$/;
//数字正则
var numPattern = /^-?\d*\.?\d+$/;
console.log(posPattern.test("42.2"));
console.log(negPattern.test("-42.2"));
console.log(numPattern.test("-42.2"));
url
//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//输出 true
console.log(urlP.test("http://caibaojian.com"));
十六进制颜色
//RGB Hex颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//输出 true
console.log(cPattern.test("#b8b8b8"));
日期
//日期正则,简单判定,未做月份及日期的判定
var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//输出 true
console.log(dP1.test("2017-05-11"));
//输出 true
console.log(dP1.test("2017-15-11"));
//日期正则,复杂判定
var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//输出 true
console.log(dP2.test("2017-02-11"));
//输出 false
console.log(dP2.test("2017-15-11"));
//输出 false
console.log(dP2.test("2017-02-29"));
QQ号
//QQ号正则,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//输出 true
console.log(qqPattern.test("65974040"));
车牌号
//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
//输出 true
console.log(cPattern.test("粤B39006"));
包含中文
//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.log(cnPattern.test("蔡宝坚"));