常用正则表达式
总结了一些平时工作中常用的正则表达式,并简单地封装成了validate.js。
- 是否是正整数
- 是否是正数(可以是正整数,也可以是正浮点数)
- 验证手机号格式是否正确
- 验证电子邮箱格式是否正确
- 验证URL地址格式是否正确
- 验证身份证号格式是否正确
- 判断是否为空
/**
* 是否是正整数
* @param {*} value 待验证的数值
* @returns 验证结果
*/
export function isPositiveInteger(value) {
const reg = /^\d+$/
return reg.test(value)
}
/**
* 是否是正数,可以是整数,也可以是浮点数
* @param {*} value 待验证的数值
* @returns 验证结果
*/
export function isPositiveNumber(value) {
const reg = /^\d*\.?\d+$/
return reg.test(value)
}
/**
* 验证手机号格式是否正确(宽松)
* @param {*} value 待验证的手机号
* @returns 验证结果
*/
export function validMobile(mobile) {
const reg = /^1[0-9]{10}$/
return reg.test(mobile)
}
/**
* 验证电子邮箱格式是否正确
* @param {*} value 待验证的电子邮箱
* @returns 验证结果
*/
export function validEmail(email) {
const reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
return reg.test(email)
}
/**
* 验证URL地址格式是否正确
* @param {*} value 待验证的URL地址
* @returns 验证结果
*/
export function validURL(s) {
const reg = /^http[s]?:\/\/.*/
return reg.test(s)
}
/**
* 验证身份证号格式是否正确
* @param {*} value 待验证的身份证号
* @returns 验证结果
*/
export function validIdNo() {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
return reg.test(s)
}
/**
* 判断是否为空
* @param {*} value 待验证内容
* @returns 验证结果
*/
export function isNull(val) {
if (typeof val === 'boolean') {
return false
}
if (typeof val === 'number') {
return false
}
if (val instanceof Array) {
if (val.length === 0) return true
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true
} else {
if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') return true
return false
}
return false
}
后记
正整数相关正则表达式
//正整数正则
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"));
手机号
var myreg = /^(13[0-9]{1}|14[5|7|9]{1}|15[0-3|5-9]{1}|166|17[0-3|5-8]{1}|18[0-9]{1}|19[8-9]{1}){1}\d{8}$/;
身份证号
//身份证号(18位)正则
var cP = /^[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]$/;
//输出 true
console.log(cP.test("11010519880605371X"));
URL
//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//输出 true
console.log(urlP.test(http://caibaojian.com));
电子邮箱
//Email正则
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//输出 true
console.log(ePattern.test(99154507@qq.com));
中文
//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.log(cnPattern.test("正则表达式"));