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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个实现货币转换的 Python 代码示例,其中包含了输入提示、输入格式检查和结果保留小数点两位的功能: ```python from forex_python.converter import CurrencyRates # 创建货币转换对象 c = CurrencyRates() # 提示用户输入需要转换的货币和目标货币 input_str = input('请输入需要转换的货币和目标货币(例如 USD-EUR):') # 检查输入格式是否正确 if '-' not in input_str: print('输入格式错误') else: # 从输入中解析出货币代码 from_currency, to_currency = input_str.split('-') # 将货币转换为大写形式 from_currency = from_currency.upper() to_currency = to_currency.upper() # 检查货币代码是否合法 if len(from_currency) != 3 or len(to_currency) != 3: print('输入格式错误') else: # 提示用户输入需要转换金额 amount_str = input(f'请输入需要转换的{from_currency}金额:') # 检查输入金额是否合法 try: amount = float(amount_str) except ValueError: print('输入格式错误') else: # 进行货币转换 converted_amount = c.convert(from_currency, to_currency, amount) # 输出转换结果 print(f'{from_currency}{amount:.2f} = {to_currency}{converted_amount:.2f}') ``` 在这个示例中,我们首先提示用户输入需要转换的货币和目标货币,然后检查输入格式是否正确。如果格式正确,我们从输入中解析出货币代码,并将它们转换为大写形式。然后,我们提示用户输入需要转换金额,并检查输入金额是否合法。如果一切正常,我们使用 `CurrencyRates` 对象进行货币转换,并将转换结果输出到控制台。注意,我们使用了字符串格式化来保留小数点两位

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值