金额转换保留小数点后两位

//金额转换保留小数后两位
const transform = (v)=>{
  let num = v
   num += ''
    num = num.replace(/[^0-9|\.]/g, '') //清除字符串中的非数字非.字符
    if(/^0+/) //清除字符串开头的0
      num = num.replace(/^0+/, '')
    if(!/\./.test(num)) //为整数字符串在末尾添加.00
        num += '.00199999999'
    if(/^\./.test(num)) //字符以.开头时,在开头添加0
    num = '0' + num
    num += '00999999'        //在字符串末尾补零
    num = num.match(/\d+\.\d{2}/)[0]
    if(v == null) num = ''
    return num
}

输入手机号只能输入整数

<!-- 输入手机号只能输入整数 -->
       <el-input
         maxlength='11'
         v-model="form.waybillNoNum"
         placeholder="请输入手机号"
         clearable class="formInput"
         onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
       </el-input>

URL 必须以 "http://"、 "https://" 等有效协议开头

//URL 必须以 "http://"、 "https://" 等有效协议开头
export const urlCheck = (rule, value, cb) => {
  if (!value) { cb() }
  if (!/^(https?|ftp|file)?:\/\//.test(value)) {
    cb(new Error('地址不正确:URL 必须以 "http://"、 "https://" 等有效协议开头'))
  } else if (!/^(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]$/.test(value)) {
    const illegalChar = value.match(/(https?|ftp|file):\/\/.*([^-A-Za-z0-9+&@#/%?=~_|!:,.;])/)
    if (illegalChar) {
      cb(new Error(`地址不正确:"${illegalChar[2]}" 是不合法的 URL 字符`))
      return
    }

    const illegalTail = value.match(/[^-A-Za-z0-9+&@#/%=~_|]$/)
    if (illegalTail && illegalTail[0]) {
      cb(new Error(`地址不正确:"${illegalTail[0]}" 不能作为 URL 的结尾`))
      return
    }

    cb(new Error('地址不正确:不合法的地址格式,请检查'))
  } else {
    cb()
  }
}



export const urlCheckCN = (rule, value, cb) => {
  if (!value) { cb() }
  if (!/^(https?|ftp|file)?:\/\//.test(value)) {
    cb(new Error('地址不正确:URL 必须以 "http://"、 "https://" 等有效协议开头'))
  } else if (!/^(https?|ftp|file):\/\/[-A-Za-z0-9_\u4e00-\u9fa5_+&@#/%?=~_|!:,.;]+[-A-Za-z0-9_\u4e00-\u9fa5_+&@#/%=~_|]$/.test(value)) {
    const illegalChar = value.match(/(https?|ftp|file):\/\/.*([^-A-Za-z0-9_\u4e00-\u9fa5_+&@#/%?=~_|!:,.;])/)
    if (illegalChar) {
      cb(new Error(`地址不正确:"${illegalChar[2]}" 是不合法的 URL 字符`))
      return
    }

    const illegalTail = value.match(/[^-A-Za-z0-9+&@#/%=~_|]$/)
    if (illegalTail && illegalTail[0]) {
      cb(new Error(`地址不正确:"${illegalTail[0]}" 不能作为 URL 的结尾`))
      return
    }

    cb(new Error('地址不正确:不合法的地址格式,请检查'))
  } else {
    cb()
  }
}

只能为字母和数字

export const patterns = {
  email: /^([\w-_]+(?:\.[\w-_]+)*)@((?:[a-z0-9]+(?:-[a-zA-Z0-9]+)*)+\.[a-z]{2,6})$/i,
  alphabetNumeric: /^[0-9a-zA-Z]*$/,
}

export const alphabetNumericCheck = (rule, value, cb) => {
  if (patterns.alphabetNumeric.test(value)) {
    cb()
    return
  }
  cb(new Error('只能为字母和数字'))
}

JSON 格式不合法

export const JSONStringCheck = (rule, value, cb) => {
  try {
    if(value!==''){
      JSON.stringify(JSON.parse(value))
    }
    cb()
  } catch (e) {
    cb(new Error('JSON 格式不合法'))
  }
}

长度超过限制

export const PhysicalLengthCheckFactory = length => ((rule, value, cb) => {
  const len = typeof length === 'function' ? length() : length
  if (physicalLength(value) > len * 2) return cb(new Error(`长度超过限制: 最多 ${len} 个汉字, 或者 ${len * 2} 个字母`))
  return cb()
})

其他一些

export const NumberRangeFactory = ({ min, max, type = 'float' }) => (rule, value, cb) => {
  if (rule.required === false && value === null) return cb()
  if (Number.isNaN(value)) return cb(new Error('数字不合法'))
  value = Number(value)
  if (type === 'interger' && Number.isInteger(value)) return cb(new Error('只能输入整数'))
  if (value < min || value > max) return cb(new Error(`只能输入 ${min} - ${max} 之间的数字`))
  return cb()
}

export const ThemeColor = ((rule, value, cb) => {
  if (/^#[0-9a-fA-F]{6}$/.test(value)) return cb()
  return cb('不合法的颜色值')
})

export const CheckNotZero = () => (rule, value, cb) => {
  if (value <= 0) return cb(new Error('请输入大于 0 的正整数'))
  return cb()
}

export const NumberValidator = () => (rule, value, cb) => {
  if (isNaN(value)) return cb(new Error('请输入数字'))
  return cb()
}

export const MultipleValidator = (targetValue) => (rule, value, cb) => {
  if (isNaN(value)) return cb(new Error('请输入数字'))
  if ((value/targetValue)%1 !== 0) cb(new Error(`请输入${targetValue}的倍数`))
  return cb()
}

export const MultipleValidatorExtend = () => (rule, value, cb) => {
  if (isNaN(value)) return cb(new Error('请输入数字'))
  // if ((value/targetValue)%1 !== 0) cb(new Error(`请输入${targetValue}的倍数`))
  return cb()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值