js封装好的各种正则校验

校验类方法:

import { Message } from 'element-ui'

 URL地址

export function URL(val) {
	let reg = /^http[s]?:\/\/.*/
	return reg.test(val)
}

 手机号码

export function phone(val) {
	let reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/
	return reg.test(val)
}

 座机

export function tel(val) {
	let reg = /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/
	return reg.test(val)
}

 身份证

export function card(val) {
	// let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
	// let reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/;
	// 只校验18的身份证
	let reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)/
	return reg.test(val)
}

 密码以字母开头,长度在6~18之间,只能包含

字母、数字和下划线

export function pwd(val) {
	let reg = /^[a-zA-Z]\w{5,17}$/
	return reg.test(val)
}

 邮政编码

export function postal(val) {
	let reg = /[1-9]\d{5}(?!\d)/
	return reg.test(val)
}

 QQ号

export function QQ(val) {
	let reg = /^[1-9][0-9]{4,9}$/
	return reg.test(val)
}

 邮箱

export function email(val) {
	let reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
	return reg.test(val)
}

 金额(小数点2位)

export function money(val) {
	let reg = /^\d*(?:\.\d{0,2})?$/
	return reg.test(val)
}

 网址

 

export function URLS(val) {
	let reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/
	return reg.test(val)
}

IP

export function IP(val) {
	let reg = /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/
	return reg.test(val)
}

 日期时间

export function times(val) {
	let reg =
		/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(
			val
		) || /^(\d{4})\-(\d{2})\-(\d{2})$/
	return reg.test(val)
}

 数字

 

export function number(val) {
	// let reg = /^[0-9]$/;
	let reg = /^([0-9])*$/
	return reg.test(val)
}

 英文

export function english(val) {
	let reg = /^[a-zA-Z]+$/
	return reg.test(val)
}

 中文

export function chinese(val) {
	let reg = /^[\u4E00-\u9FA5]/g
	return reg.test(val)
}

 小写

 

export function lower(val) {
	let reg = /^[a-z]+$/
	return reg.test(val)
}

 小写英文+反斜杠 / 校验

 

export function lowerbackslash(val) {
	let reg = /^[a-z\/]+$/
	return reg.test(val)
}

英文+反斜杠 / 校验

export function enbackslash(val) {
	let reg = /^[a-zA-Z\/-]+$/
	return reg.test(val)
}

 常用特殊字符校验(可输入常用标点符号)

export function commonSpecial(val) {
	let pattern = new RegExp(
		'[`~%@#$^&*()=|{}\\[\\].<>/?~@#¥……&*()——|{}【】]'
	)
	return !pattern.test(val)
}

 特殊字符校验

export function special(val) {
	let pattern = new RegExp(
		"[`~!%@#$^&*()=|{}':;',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
	)
	return !pattern.test(val)
}

 特殊字符校验

export function specialrep(val) {
	let pattern = new RegExp(
		"[`~!%@#$^&*=|{}':;',\\[\\].<>《》/?~!@#¥……&*|{}【】‘;:”“'。,?]"
	)
	return !pattern.test(val)
}

 特殊字符校验允许输入冒号

export function thecolon(val) {
	let pattern = new RegExp(
		"[`~!%@#$^&*()=|{}';',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
	)
	return !pattern.test(val)
}

 特殊字符校验允许输入冒号大括号

export function curlybraces(val) {
	let pattern = new RegExp(
		"[`~!%@#$^&*()=|';',\\[\\].<>《》/?~!@#¥……&*()——|【】‘;:”“'。,、?]"
	)
	return !pattern.test(val)
}

 大写

 

export function upper(val) {
	let reg = /^[A-Z]+$/
	return reg.test(val)
}

 HTML标记

export function HTML(val) {
	let reg = /<("[^"]*"|'[^']*'|[^'">])*>/
	return reg.test(val)
}

银行卡规则

export function bankCardRule(value) {
	let reg = /^([1-9]{1})(\d{14}|\d{15}|\d{18})$/
	return reg.test(value)
}

 经度

export function checkLong(value) {
	let longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/
	return longrg.test(value)
}

 纬度

export function checkLat(value) {
	let latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/
	return latreg.test(value)
}

 比对日期 传入开始时间和结束时间

export function timeComparison(beginTime, endTime) {
	let begin = new Date(beginTime).valueOf(),
		end = new Date(endTime).valueOf()
	if (begin > end) {
		return false
	} else {
		return true
	}
}

 比对日期(有当前) 传入开始时间和结束时间

export function timeDateComparison(beginTime, endTime) {
	let begin = new Date(beginTime).valueOf(),
		end = new Date(endTime).valueOf(),
		date = new Date()
	if (begin < date && end > date) {
		return true
	} else {
		return false
	}
}

 比对日期(没有当前) 传入开始时间和结束时间

export function timeDateComparisonSingle(beginTime, endTime) {
	let begin = new Date(beginTime).valueOf(),
		end = new Date(endTime).valueOf()
	if (begin < end) {
		return true
	} else {
		return false
	}
}

 比对大小

export function comparison(min, max) {
	if (min > max) {
		return false
	} else {
		return true
	}
}

 空格校验

export function spaceValidate(value) {
	let reg = /\s/
	return !reg.test(value)
}

 车牌号校验

export function carNumberValidate(value) {
	let reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
	return reg.test(value)
}

 传真号码校验

export function fax(value) {
	let reg = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/
	return reg.test(value)
}

 长度校验  (c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)

export function wordLength(str) {
	let len = 0
	if (str && str.length > 0) {
		for (let i = 0; i < str.length; i++) {
			let a = str.charCodeAt(i)
			// if(a.match(/[^\x00-\xff]/ig != null)) {
			if ((a >= 0x0001 && a <= 0x007e) || (0xff60 <= a && a <= 0xff9f)) {
				//汉字
				len++
			} else {
				len += 3
			}
		}
	}
	console.log(len)

	return len
}

 查找某个字符串中汉字的数量

export function ChineseLength(str) {
	let len = 0
	for (let i = 0; i < str.length; i++) {
		let a = str.charCodeAt(i)
		// if(a.match(/[^\x00-\xff]/ig != null)) {
		if ((a >= 0x0001 && a <= 0x007e) || (0xff60 <= a && a <= 0xff9f)) {
			//汉字
		} else {
			len++
		}
	}
	return len
}

 数组输入内容校验

export function validator(obj, key, text) {
	// obj数组参数 key校验的关键字 text提示文本
	console.log(obj, key, text)
	let state = ''
	try {
		obj.forEach((item, index) => {
			if (!/\s/.test(item[key]) == false) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条不可输入空格!',
					type: 'error',
				})
				throw Error()
				// return false
			} else if (!NubCheck(item[key])) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条请输入有效的数字!',
					type: 'error',
				})
				throw Error()
				// return false
			} else if (!Decimal(item[key])) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条只能输入两位小数!',
					type: 'error',
				})
				throw Error()
				// return false
			} else {
				state = true
			}
		})
	} catch (err) {}
	if (state === true) {
		return true
	}
}

 电量数组输入内容校验

export function elecQuantityValidator(obj, key, text) {
	// obj数组参数 key校验的关键字 text提示文本
	let state = ''
	try {
		obj.forEach((item, index) => {
			if (!/\s/.test(item[key]) == false) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条不可输入空格!',
					type: 'error',
				})
				throw Error()
				// return false
			} else if (!NubCheck(item[key])) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条请输入有效的数字!',
					type: 'error',
				})
				throw Error()
				// return false
			} else if (!FalseDecimal(item[key])) {
				window.ELEMENT.Message({
					message: text + '第' + (index + 1) + '条不可输入小数!',
					type: 'error',
				})
				throw Error()
				// return false
			} else {
				state = true
			}
		})
	} catch (err) {}
	if (state === true) {
		return true
	}
}

 判断是否为小数

export function FalseDecimal(val) {
	let reg = /^(\-?)\d+$/
	return reg.test(val)
}

  判断是否为2位小数

export function Decimal(val) {
	let reg = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^([+-]?)(0){1}$)|(^([+-]?)[0-9]\.[0-9]([0-9])?$)/
	return reg.test(val)
}

 判断是否为正整数、负数、小数

export function NubCheck(val) {
	let reg = /^(\-|\+)?\d+(\.\d+)?$/
	return reg.test(val)
}

 数字和字母

export function numberEnglish(val) {
	let reg = /^([A-Za-z0-9])*$/
	return reg.test(val)
}

 判断是否含有表情符号

export function checkEmoji(val) {
	let pattern = new RegExp(
		'[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]'
	)
	return pattern.test(val)
}

  判断输入值是否为null

export function checkNull(val) {
	let _val = val.trim().toLowerCase()
	if (_val == 'null') {
		return true
	} else {
		return false
	}
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值