2014-09-02 120 views
1

我在javascript上有這個整數。我要修剪或看到數字> 0號0之後例如後爆炸它:根據特定數字分解或切割字符串

var digit = 8001000 

結果應該是digit[0] = 800digit[1] = 1000

它應該在最後一個零數字後找到一個大於0的數字,然後將其剪切。它應該只能從中間減去零,而不包括在數字結尾附近找到的零。

又如更清晰

var digit = 80100 

結果應該是digit[0] = 80digit[1] = 100。所以只要這些結果得到滿足,多少零就沒關係了。

任何答案將不勝感激!

回答

3

你真的不能拆分的數字,但你可以把它變成一個字符串,使用的比賽用尾隨零匹配任意數量,則值映射回數字

digit.toString().match(/[1-9]+0+/g).map(Number); 

FIDDLE

+0

如果這是一個家庭作業問題,OP只是失敗 - 代碼過於專業和嫺熟的是學生工作。 – Malvolio 2014-09-02 18:26:13

+0

爲了匹配8010032,應該是/ [1-9] + 0 */g。假設答案是[80,100,32] – 2014-09-02 18:29:04

+0

如果可能的話,稍加說明你寫了什麼,它是什麼意思以及它是如何工作的 – 2014-09-02 18:29:26

1
var num = 8001000; 
(''+num).match(/([^0]+0+)/g); 
// returns ["800", "1000"] 

將該數字轉換爲字符串,然後查找所有出現的NOT-ZERO,然後是ZEROES。

0

沒有測試,但是這是一個regex

digit1 = digit.replace(/([0-9]*0)[1-9][0-9]*$/, "$1"); 
digit2 = digit.replace(/[0-9]*0([1-9][0-9]*)$/, "$1");