您当前的位置: 首页 >  Java

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JavaScript实现价格输入控制并翻译为中文大写、结合

发布时间:2021-12-16 18:57:22 ,浏览量:0

目录
  • 1、HTML部分
  • 2、JavaScript部分
  • 3、效果演示
1、HTML部分
<div> <input type="text" maxlength="12" name="je" placeholder="请输入价格" onkeyup="priceInput(this)" /> <div id="showVal"> // 清除数字和点以外的字符 obj.value = obj.value.replace(/[^\d.]/g, ""); // 验证第一个字符是否是数字,也就是是第一个字符不能是点 obj.value = obj.value.replace(/^\./g, ""); // 只保留第一个点, 清除多余的点 obj.value = obj.value.replace(/\.{2,}/g, "."); obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); // 只能输入两个小数 obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 此处控制的是如果没有小数点,首位不能为0,类似于01、02的金额 if (obj.value.indexOf(".") < 0 && obj.value != "") { if (obj.value.substr(0, 1) == '0' && obj.value.length == 2) { obj.value = parseFloat(obj.value); } } else { // 此处控制的是如果有小数点,整数如果大于等于两位,第一位不能为0,类似于01.16、02.77的金额 let val = obj.value, beforePoint = val.split('.')[0], afterPoint = val.split('.')[1]; if (beforePoint.length >= 2 && beforePoint[0] == 0) { obj.value = `${beforePoint.substring(1)}.${afterPoint}`; } } document.getElementById('showVal').innerText = this.toChineseMoney(obj.value); } function toChineseMoney(n) { let unit = "仟佰拾亿仟佰拾万仟佰拾圆角分", str = ""; n += "00"; let p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p + 1, 2); unit = unit.substr(unit.length - n.length); for (let i = 0; i < n.length; i++) str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i); return str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|圆)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^圆零?|零分/g, "").replace(/圆$/g, "圆整"); } 
3、效果演示

小程序码

2.0.0X

普通二维码

2.0.0P

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.4443s