Loading

常用正则校验

/**
 * 邮箱
 * @param {*} s
 */
export function isEmail (s) {
  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}

/**
 * 手机号码
 * @param {*} s
 */
export function isMobile (s) {
  return /^1[0-9]{10}$/.test(s)
}

/**
 * 电话号码
 * @param {*} s
 */
export function isPhone (s) {
  return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}

/**
 * URL地址
 * @param {*} s
 */
export function isURL (s) {
  return /^http[s]?:\/\/.*/.test(s)
}




/**
 * 数字(包含小数)校验
 */
export function checkNumber(value,sumLen,pointLen, callback) {
  let reg = /^(((0(\.\d+)?))|([1-9]\d*(\.\d+)?))$/
  let msg = ''
  if(pointLen === 0){
  	msg = '请输入最多'+ (sumLen-pointLen) + '位整数'
  } else {
  	msg = '请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'
  }
  if(value == null || value.toString().trim() == ''){
    callback()
  } else if (isNaN(value)) {
    callback(new Error('请输入数字'))
  } else if (!reg.test(value)) {
    callback(new Error('请输入合法的数字'))
  } else if(value.toString().indexOf(".") >= 0) {
    let numArr = value.toString().split('.')
    if(numArr[0].length > sumLen-pointLen ) {
      callback(new Error(msg))
    } else if(numArr[1].length > pointLen) {
      callback(new Error(msg))
    } else {
      callback()
    }
  } else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
    callback(new Error(msg))
  }else {
    callback()
  }
}

/**
 * 正负数(包含小数)校验
 * @param value
 * @param sumLun
 * @param pointLen
 * @param callback
 */
export function checkNumberNegative(value,sumLen,pointLen,callback){
  let reg = /(^[\-0-9][0-9]*(.[0-9]+)?)$/
  if(value == null || value.toString().trim() == ''){
    callback()
  } else if (isNaN(value)) {
    callback(new Error('请输入数字'))
  } else if (!reg.test(value)) {
    callback(new Error('请输入合法的数字'))
  } else if(value.toString().indexOf(".") >= 0) {
    let numArr = value.toString().split('.')
    if(numArr[0].length > sumLen-pointLen ) {
      callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
    } else if(numArr[1].length > pointLen) {
      callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
    } else {
      callback()
    }
  } else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
    callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
  }else {
    callback()
  }
}

/**
 * 百分比数字校验(包含负数)
 */
export function checkNumberPercent(rule,value,callback) {
	let reg = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^([+-]?)(0){1}$)|(^([+-]?)[0-9]\.[0-9]([0-9])?$)/
	if(value == null || value.toString().trim() == ''){
		callback()
	} else if (isNaN(value)) {
	  callback(new Error('请输入最多2位小数的数字'))
	} else if (!reg.test(value)) {
	  callback(new Error('请输入最多2位小数的数字'))
	} else if (Number(value) > 100 || Number(value) < -100){
	  callback(new Error('请输入正负100之间的数字'))
    }else {
      callback()
    }
}

/**
 * 百分比数字校验(不包含负数)
 */
export function checkPercent(rule,value,callback) {
	let reg = /^[0-9]+([.]{1}[0-9]{1,2})?$/
	if(value == null || value.toString().trim() == ''){
		callback()
	} else if (isNaN(value)) {
	  callback(new Error('请输入最多2位小数的数字'))
	} else if (!reg.test(value)) {
	  callback(new Error('请输入最多2位小数的数字'))
	} else if (Number(value) > 100){
	  callback(new Error('请输入小于100的数字'))
    }else {
      callback()
    }
}

/**
 * 校验正整数和0
 */
export function checkPositiveIntegers(rule,value,callback) {
  let reg = /^(0|\+?[1-9][0-9]*)$/
  if(value == null || value.toString().trim() == ''){
    callback()
  } else if (isNaN(value)) {
    callback(new Error('请输入数字'))
  } else if (!reg.test(value)) {
    callback(new Error('请输入合法的非负整数'))
  } else {
    callback()
  }
}




posted @ 2022-02-21 10:27  资深if-else侠  阅读(58)  评论(0编辑  收藏  举报