正则:如何匹配到小数点2位以后的内容

// 如何匹配到小数点2位以后的内容

var s = '12.34567'     
// 期望 12.34
console.log(s.replace(/\.\d{2}/, '*')) // 12*567
console.log(s.replace(/\.[^\d]{2}\d+/, '*')) // 12.34567
阅读 2.6k
3 个回答

一、不用正则

new Number('12.34567').toFixed(2);
(+'12.34567').toFixed(2);
var s='12.34567';
s.substring(0,s.indexOf(".")+3);

二、用正则

'12.34567'.match(/^\d+\.\d{2}/)[0];
'12.34567'.replace(/^(\d+\.\d{2})\d*$/,"$1");

var s = '12.34567';
var num = Number(s.match(/^d+(?:.d{0,2})?/))
alert(num);//12.34

四舍五入的话:
var s = 12.34567
alert(s.toFixed(2));//12.35

/^(\d+\.\d{2})(\d+)$/.test(12.34567)
true
RegExp.$2
"567"

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题