2013-11-22 68 views
0

我得到像01,02,03,04及以上的數字。如果存在,我想刪除前綴0。但我需要它保留像10,20,30這樣的數字。Javascript修剪第一個字符,如果它是零

我的最新嘗試,而我認爲是矯枉過正的是...是:

newValue = 01; 
tester(newValue); 
newValue = 10; 
tester(newValue); 
function tester(newValue) 
{ 
    finalValue = newValue; 
    var arr = newValue.split('0'); 
    if(arr.length > 1) 
    { 
     if(arr[0] == 0) 
     { 
      finalValue = ''; 
      $.each(arr, function(v) 
        { 
         finalValue +=v; 
        }); 
     } 
    } 
//return finalValue; 
    console.log(finalValue); 
} 

我不是這種方法賣,我只是嘗試了多種方法和它的所有是沒有去。

+0

請參考這裏:http://stackoverflow.com/questions/646628/javascript-startswith希望它有幫助.. –

+0

如果你正在處理數字,而不是字符串(你的代碼示例似乎顯示),那麼在那裏'01'和'1'之間沒有區別。他們是相同的數字。試試'alert(01)'看看你得到了什麼。 – jfriend00

+0

@ jfriend00看着它,08和09是非法的八進制數 – mplungjan

回答

2

parseInt(val, 10)將刪除前導零。

+0

正則表達式不需要 – mplungjan

+0

@mplungjan true則表示 – levi

+0

關於parseInt(string,radix)的更多信息。 (您可能想檢查關於第二個參數「radix」的部分)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt –

2

任何數量失去所有前導0,當它在任何計算

Live Demo

function num(n) { return +n } 

比parseInt函數更快和更短(STR,10)

注意,08和09都被認爲是用來非法的八進制數字,如果前導0未被刪除。