vue 金额大小写实时转换

 
  <a-form-model-item  label="金额(元)" >
       <a-input type="number"  v-model="amount" placeholder="请输入" @input="inputAmount(amount)"/>
  </a-form-model-item>

  <a-form-model-item label="大写">
       <a-input v-model="text" :disabled="disabled" placeholder="请输入" />
  </a-form-model-item>
   

  

//data

text:""     //大写
amount:""   //金额

 

//methods:

 inputAmount(number) {
      let ret = ''
      if (number !== '' && number != null && number !== '0') {
        let unit = '仟佰拾亿仟佰拾万仟佰拾元角分'
        let str = ''
        number += '00'
        const point = number.indexOf('.')
        if (point >= 0) {
          number = number.substring(0, point) + number.substr(point + 1, 2)
        }
        unit = unit.substr(unit.length - number.length)
        for (let i = 0; i < number.length; i++) {
          str += '零壹贰叁肆伍陆柒捌玖'.charAt(number.charAt(i)) + unit.charAt(i)
        }
        ret =
          str
            .replace(/零(仟|佰|拾|角)/g, '')
            .replace(/(零)+/g, '')
            .replace(/零(万|亿|元)/g, '$1')
            .replace(/(亿)万|(拾)/g, '$1$2')
            .replace(/^元零?|零分/g, '')
            .replace(/元$/g, '') + ''
      }
      this.text = ret
    },

 

 

 

posted @ 2021-12-02 17:17  小兔儿_乖乖  阅读(580)  评论(0)    收藏  举报