javascript - 关于正则显示金额的问题

 小轩之音_438 发布于 2022-11-28 21:03

请教一个车价的显示正则匹配:

1500000显示150万;
1505500显示150.55万;
1505550显示150.56万四舍五入百以后的数值


求解~

6 个回答
  • <scripttype="text/javascript">functionchange(num){num=num/10000;if(typeofnum!='number'){return}varnumStr=num.toString();varindex=numStr.indexOf('.')if(index==-1){returnnumStr+='.00万'}elseif(numStr.length-index==2){returnnumStr+='0万'}elseif(numStr.length-index==3){returnnumStr}else{varreg=/.(\d{3})\d*$/;newNum=numStr.replace(reg,function($0,$1){//tempDec用来判断四舍五入后小数位数vartempDec=Math.round(Number($1.substring(0,2)+'.'+$1.substring(2)));varnewDec;tempDec=tempDec.toString();tempDec===0?newDec='00':(tempDec.length==1?newDec='0'+tempDec:newDec=tempDec)console.log(newDec)return'.'+newDec})}returnnewNum+'万'};console.log(change(1005555))</script>

    很早以前写的,你再测试一下。

    2022-11-28 21:27 回答
  • ['1500000','1505500','1505550'].forEach(function(item){console.log(item.replace(/^(\d+)(?=\d{4})(\d{2})(\d+)$/,'$1.$2万'))})四舍五入忽然不想写了。
    2022-11-28 21:27 回答
  • 我觉得函数也可以达到,所以就用函数来写。
    写一个简单的:

    varx=1500000;functionhandlePrice(num){if(typeofnum!="number")return"wrongnumber";if(num>=100){num=num/10000;num=num.toFixed(2);returnnum+"万";}returnnum;}

    PS:

    1JavaScript中的浮点数计算可能会有点问题,所以建议重写一个做除法运算的函数.2如果题主一定要正则表达式,那就只能看别人的答案了。
    2022-11-28 21:27 回答
  • round($money/1000,2)

    2022-11-28 21:27 回答
  • 为什么要正则,先将数字转为单位为万的小数,然后保留小数不就行了?

    2022-11-28 21:27 回答
  • varn=1505550;
    vara=1500000;
    varb=1505500;
    varm=(Math.round(n/100)/100).toFixed(2);
    varc=(Math.round(a/100)/100).toFixed(2);
    vard=(Math.round(b/100)/100).toFixed(2);
    alert(m);alert(c);alert(d);

    2022-11-28 21:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有