使用Javascript查找非零数字的最后索引

时间:2013-11-25 14:23:57

标签: javascript jquery regex string node.js

如何在Javascript中的数字/字符串中找到最后一个非零数字?有了它,我们将能够将零填充数字拆分为实际数字和零填充。可以使用任何JS / Node库。

尝试使用.lastIndexOf()但未找到定义非零数字的方法。

输入

1.23400
1.00050
1.03456

输出

['1.234', '00']
['1.0005', '0']
['1.03456']

3 个答案:

答案 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];
}