replace小数点后保留2位


replace小数点后保留2位

 

小数点后保留2位

网上一堆小数点保留2位正则,但大部分都是直接copy,未解决0101和以.开头的这种情况

网上写法

obj.value = obj.value.replace(/[^\d.]/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');//只能输入两个小数 
借助前辈们的思想改动如下,解决0101和以.开头这种情况
val = e
            .replace(/[^\d.]/g, "") .replace(/^0\d+|^\./g, "") .replace(/\.{2,}/g, ".") .replace(".", "$#$") .replace(/\./g, "") .replace("$#$", ".") .replace(/^(\d+)\.(\d\d).*$/, "$1.$2"); 
e为数据源,如oninput事件中的e
注意下"$#$",并不是特殊语法,只是用来替换.后续在替换回来。$1,$2为占位符对应正则中的()里的内容


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM