如何在Javascript中查找數字/字符串中非零數字的最後一次出現?這樣,我們就可以將零填充的數字分成實際的數字和零填充。任何JS/Node庫都可以使用。使用Javascript查找非零數字的最後一個索引
嘗試使用.lastIndexOf()
但沒有找到一種方法來定義一個非零數字。
輸入
1.23400
1.00050
1.03456
輸出
['1.234', '00']
['1.0005', '0']
['1.03456']
如何在Javascript中查找數字/字符串中非零數字的最後一次出現?這樣,我們就可以將零填充的數字分成實際的數字和零填充。任何JS/Node庫都可以使用。使用Javascript查找非零數字的最後一個索引
嘗試使用.lastIndexOf()
但沒有找到一種方法來定義一個非零數字。
輸入
1.23400
1.00050
1.03456
輸出
['1.234', '00']
['1.0005', '0']
['1.03456']
使用正則表達式:
/^([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
錯誤!「!!!!! http://jsfiddle.net/mrk1989/DhX38/ –
當我把1.03456這個回報置於alert:1.03456,1.03456, –
是的!這是預期的結果。 – Techniv
試試這個:
'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];
}
投下你浮到一個字符串,並使用正則表達式。 –
我同意btoueg,我會寫一小段代碼來表明這一點。 – Aearnus
@btoueg:這沒用。輸入已經是一個字符串。因爲如果它是一個浮點數,那末數就沒有零。 – Techniv