专业编程基础技术教程

网站首页 > 基础教程 正文

平时工作中一些常用的JS正则表达式及简单封装

ccvgpt 2024-07-21 17:28:15 基础教程 10 ℃

常用正则表达式

总结了一些平时工作中常用的正则表达式,并简单地封装成了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("正则表达式"));

平时工作中一些常用的JS正则表达式及简单封装

最近发表
标签列表