如何在Javascript中的数字/字符串中找到最后一个非零数字?有了它,我们将能够将零填充数字拆分为实际数字和零填充。可以使用任何JS / Node库。
尝试使用.lastIndexOf()
但未找到定义非零数字的方法。
输入
1.23400
1.00050
1.03456
输出
['1.234', '00']
['1.0005', '0']
['1.03456']
答案 0 :(得分:3)
使用正则表达式:
/^([0-9]+\.?[0-9]*?)(0*)$/
/^([0-9]+\.?[0-9]*?)(0*)$/.exec('1.23400'); // return ["1.23400", "1.234", "00"]
/^([0-9]+\.?[0-9]*?)(0*)$/.exec('1.03456'); // return ["1.03456", "1.03456", ""]
如果您通过获取数字的有意义部分来引发兴趣,也可以使用parseFloat。
parseFloat('1.23400') // return 1.234
答案 1 :(得分:1)
试试这个:
'1.23400'.match(/^.*?(?=0*$)|0+$/g)
// ^.*?(?=0*$) : everything before zero or more trailing zeros
// 0+$ : one or more trailing zeros
答案 2 :(得分:0)
试试这个:
function lastIndexOfDigit(str) {
var last_indices = [];
[1, 2, 3, 4, 5, 6, 7, 8, 9].map(function (digit) {
last_indices.push(str.lastIndexOf(digit));
});
var indices = last_indices.sort(function (a, b) {
return a - b;
});
return indices[indices.length - 1];
}