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

使用Javascript查找非零数字的最后一个索引,javascript,jquery,regex,string,node.js,Javascript,Jquery,Regex,String,Node.js,如何在Javascript中找到数字/字符串中最后出现的非零数字?这样,我们就可以将一个零填充的数字拆分为实际的数字及其零填充。可以使用任何JS/Node库 尝试使用.lastIndexOf(),但未找到定义非零数字的方法 输入 1.23400 1.00050 1.03456 ['1.234', '00'] ['1.0005', '0'] ['1.03456'] 输出 1.23400 1.00050 1.03456 ['1.234', '00'] ['1.0005', '0'] ['1.0

如何在Javascript中找到数字/字符串中最后出现的非零数字?这样,我们就可以将一个零填充的数字拆分为实际的数字及其零填充。可以使用任何JS/Node库

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

输入

1.23400
1.00050
1.03456
['1.234', '00']
['1.0005', '0']
['1.03456']
输出

1.23400
1.00050
1.03456
['1.234', '00']
['1.0005', '0']
['1.03456']
使用正则表达式:

/^([0-9]+\.?[0-9]*?)(0*)$/

如果您只是通过获取数字的有意义部分来感兴趣,那么也可以使用parseFloat

parseFloat('1.23400') // return 1.234
使用正则表达式:

/^([0-9]+\.?[0-9]*?)(0*)$/

如果您只是通过获取数字的有意义部分来感兴趣,那么也可以使用parseFloat

parseFloat('1.23400') // return 1.234
试试这个:

'1.23400'.match(/^.*?(?=0*$)|0+$/g)
// ^.*?(?=0*$) : everything before zero or more trailing zeros
// 0+$         : one or more trailing zeros
试试这个:

'1.23400'.match(/^.*?(?=0*$)|0+$/g)
// ^.*?(?=0*$) : everything before zero or more trailing zeros
// 0+$         : one or more trailing zeros
试试这个:

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];
} 
试试这个:

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

将浮点转换为字符串并使用正则表达式。我同意btoueg的观点,我将编写一段代码来说明这一点。@btoueg:这没用。输入已经是一个字符串。因为如果它是一个浮点数,那么数字的末尾就没有零。将浮点数转换为字符串并使用正则表达式。我同意btoueg的观点,我将编写一段代码来说明这一点。@btoueg:这没用。输入已经是一个字符串。因为如果它是一个浮点数,那么数字的末尾就没有零。当我把1.03456放在警报中时,这个返回:1.03456,1.03456,是的!这是预期结果。请尝试在JS控制台中编写
警报([“1.03456”、“1.03456”、“1.03456”)
。永远不要使用alert来调试JS。当我把1.03456这个返回放在alert中时:1.03456,1.03456,是的!这是预期结果。请尝试在JS控制台中编写
警报([“1.03456”、“1.03456”、“1.03456”)
。永远不要使用alert来调试JS。