js - 正则常见规则

正则

常见规则

  1. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  2. 匹配双字节字符(包括汉字在内): [^x00-xff]
  3. 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$

validate.js

const rules = {
  eg: {
    reg: /^\d$/,
    msg: 'msg'
  },
  identity: {
    reg: /(^\d{15}$)|(^\d{17}(x|X|\d)$)/,
    msg: '请输入正确的身份证号'
  },
  negative: {
    reg: /^([1-9][\d]{0,7}|0)(\.[\d]{1,10})?$/,
    msg: '输入的金额格式不正确!'
  },
  creditCode: {
    reg: /[1-9A-GY]{2}[1-5]{1}[0-9]{5}[0-9A-Z]{10}/,
    msg: '请输入正确社会统一代码'
  },
  telOrMobile: {
    reg: /^1[345789]\d{9}|^0\d{2,3}-?\d{7,8}$/,
    msg: '请输入正确的电话或手机号码'
  },
}

export function valid(ruleKey, value) {
  return rules[ruleKey].reg.text(value)
}


/**
 * @method 验证电话
 * @param {String} str 
 * @description 验证规则:区号+号码,区号以0开头,3位或4位
 * 号码由7位或8位数字组成区号与号码之间可以无连接符,也可以“-”连接
 * 如01088888888,010-88888888,0955-7777777
 */
export function isTel(str) {
  return /^0\d{2,3}-?\d{7,8}$/.test(str)
}


/**
 * @method 验证手机
 * @param {String} str 
 * @description 验证规则:11位数字,以1开头。
 */
export function isMobile(str) {
  return /^1\d{10}$/.test(str)
}

/**
 * @method 验证邮箱
 * @param {String} str 
 * @description 验证规则:姑且把邮箱地址分成“第一部分@第二部分”这样
 * 第一部分:由字母、数字、下划线、短线“-”、点号“.”组成,
 * 第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成,
 * 而域名后缀一般为.xxx或.xxx.xx,一区的域名后缀一般为2-4位,如cn,com,net,现在域名有的也会大于4位
 */
export function isTel(str) {
  return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(str)
}


/**
 * @method 验证帐号是否合法
 * @param {String} str 
 * @description 验证规则:字母、数字、下划线组成,字母开头,4-16位。
 */
export function isAccount(str) {
  return /^[a-zA-z]\w{3,15}$/.test(str)
  // return str.match(/[_]/g).length > 1 && /^(?!_)[a-zA-Z\u4e00-\u9fa5_\d]{2,30}$/.test(str) // 2-30位账号,可输入中文/英文/数字,_不为首位且只有一个
}

/**
 * @method 验证价格是否合法
 * @param {String} price 
 * @description 
 */
export function isPrice(price) {
  return /(^[1-9]\d*(\.\d{1,2})?$)|(^0?(\.\d{1,2})?$)/.test(price)
}
posted @ 2021-11-26 16:56  zc-lee  阅读(218)  评论(0)    收藏  举报