我试图确保这些组合中的任何一个 - 将始终显示没有小数或没有逗号的四舍五入数字。例子
1,200.00 should output = 1200
12.33 should output = 12
123.34 should output = 123
1,434 should output = 1434
165,33 should output = 165
250.00 should output = 250
259,00 should output = 259
Run Code Online (Sandbox Code Playgroud)
我努力了:
var currency = "$1,100.00";
var number = Number(currency.replace(/[^0-9\.]+/g,""));
Run Code Online (Sandbox Code Playgroud)
还有我的最新消息:
var priceTotal = parseFloat(price.replace( /[^\d\.]*/g, ''));
Run Code Online (Sandbox Code Playgroud)
但这对于逗号来说效果不佳。显示时必须始终不带逗号、点或最后一位数字。
请使用/[^0-9\.]/g正则表达式替换逗号,使用indexOffor 查找逗号的位置并使用parseInt将该字符串转换为整数。
请按照以下示例操作::
var a = '1,200.00';
var b = '12.33';
var c = '123.34';
var d = '1,434';
var e = '165,33';
var f = '250.00';
var g = '259,00';
$(document).ready(function () {
parseNumberCustom(a);
parseNumberCustom(b);
parseNumberCustom(c);
parseNumberCustom(d);
parseNumberCustom(e);
parseNumberCustom(f);
parseNumberCustom(g);
});
function parseNumberCustom(number_string) {
var new_number = parseInt(number_string.indexOf(',') >= 3 ? number_string.split(',')[0] : number_string.replace(/[^0-9\.]/g, ''));
console.log('Before==>' + number_string + ', After==>' + new_number);
}
Run Code Online (Sandbox Code Playgroud)