IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 金额转换保留小数点后两位 -> 正文阅读

[JavaScript知识库]金额转换保留小数点后两位

//金额转换保留小数后两位
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()
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:55:34  更:2022-03-31 23:57:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:37:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码