js一些常用校验

// 验证是否为正整数
export const validatePosInt = function (rule, value, callback) {
  if (Number.isInteger(Number(value)) && Number(value) > 0) {
    callback()
  } else {
    callback(new Error('请输入有效数字'))
  }
}
//经度
export const  validatorLongitude = function(rule, value, callback) {
  console.log('经度',value)
    const reg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,8})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,8}|180)$/
    if(value === ""){
        callback(new Error('请输入经度'));
    }else{
        if(!reg.test(value)){
            callback(new Error('经度范围:-180~180(保留小数点后八位)'));
        }
        callback();
    }
}

//纬度
export const validatorLatitude =  function(rule, value, callback) {
    const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,8}|90\.0{0,8}|[0-8]?\d{1}|90)$/
    if(value === ""){
        callback(new Error('请输入纬度'));
    }else{
        if(!reg.test(value)){
            callback(new Error('纬度范围:-90~90(保留小数点后八位)'));
        }
        callback();
    }
}
     
// 替换为数字形式--包含小数,负数
export const replaceNum = function (val) {
  const t = val.charAt(0)
  // 先把非数字的都替换掉,除了数字和.
  val = val.replace(/[^\d.]/g, '')
  // 必须保证第一个为数字而不是.
  val = val.replace(/^\./g, '')
  // 保证只有出现一个.而没有多个.
  val = val.replace(/\.{2,}/g, '.')
  // 保证.只出现一次,而不能出现两次以上
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  // 如果第一位是负号,则允许添加
  if (t === '-') {
    val = '-' + val
  }
  return val
}

// 替换为数字形式--包含小数,负数
export const replacePosNum = function (val) {
  // const t = val.charAt(0)
  // 先把非数字的都替换掉,除了数字和.
  val = val.replace(/[^\d.]/g, '')
  // 必须保证第一个为数字而不是.
  val = val.replace(/^\./g, '')
  // 保证只有出现一个.而没有多个.
  val = val.replace(/\.{2,}/g, '.')
  // 保证.只出现一次,而不能出现两次以上
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  return val
}

// 替换为正整数
export const replacePosInt = function (val) {
  val = val.replace(/[^\d]/g, '')
  return val
}

// 验证是否为ip地址
export const validateIP = function (rule, value, callback) {
  var reg = /^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的格式'))
  }
}

// 验证是否为ip地址 多个IP
export const validateIPMore = function (rule, value, callback) {
  var reg = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?)(;((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?))*$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的格式'))
  }
}

export function ipInputer(ip) {
  let reg = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/;
  let re = new RegExp(reg);
  if (ip == null || ip == '') {
    return {
      mes: 'IP不能为空!',
      del: false
    }
  }
  if (!re.test(ip)) {
    return {
      mes: '请填写有效的IP地址!',
      del: false
    }
  }
  return {
    mes: '成功!',
    del: true
  }
}

export function passwords(name, password) {
  let reg = /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[.@$!%*?&^#~])([a-zA-Z0-9.@$!%*?&^#~]{8,})$/

  let re = new RegExp(reg);
  // console.log(password,re.test(password))
  if(name){
    if (password.search(name) != -1) {
      return {
        mes: '密码包含用户名!',
        del: false
      }
    }
  }
  if (!re.test(password)) {
    return {
      mes: '口令不得小于 8 位,且为字母、数字或特殊符号的混合组合!',
      del: false
    }
  }
  return {
    mes: '成功!',
    del: true
  }
}

export function passwords1(password) {
  let reg = /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[.@$!%*?&^#~])([a-zA-Z0-9.@$!%*?&^#~]{8,})$/

  let re = new RegExp(reg);
  if (!re.test(password)) {
    return {
      mes: '口令不得小于 8 位,且为字母、数字或特殊符号的混合组合!',
      del: false
    }
  }
  return {
    mes: '成功!',
    del: true
  }
}

你可能感兴趣的:(前端应用,javascript,前端,vue.js)