JavaScript 字串補零
第一種:使用遞迴的方式
網路上找到的可以使用遞迴反覆的補足 "0"
例如
/* 左邊補0 */ function padLeft(str, lenght) { str = '' + str; //後來加的 if (str.length >= lenght) { return str; } else { return padLeft("0" + str, lenght); } }但我測完發現他多補一個0
例如 padLeft(12,2) 會得到 "012",我以為他會變 "12"
後來網路上有人說加上str = '' + str; 這一行
這樣會將傳入的參數轉型為字串,不然會傳入的如果是數字
str.length 會得到 undefined
這樣就至少會補一次"0"
如果傳入的參數是數字且不用補"0",反而會加個"0"就會出錯
/* 左邊補0 */ function padLeft(str, lenght) { str = '' + str; //後來加的 if (str.length >= lenght) { return str; } else { return padLeft("0" + str, lenght); } } /* 右邊補0 */ function padRight(str, lenght) { str = '' + str; if (str.length >= lenght) { return str; } else { return padRight(str + "0", lenght); } }
第二種:使用 array join 的方式
使用 array join 的方式,一次產生要補足的 "0"
/* 左邊補0 */ function padLeft(str, lenght) { str = '' + str; return str.length >= lenght ? str : new Array(lenght - str.length + 1).join("0") + str; } /* 右邊補0 */ function padRight(str, lenght) { str = '' + str; return str.length >= lenght ? str : str + new Array(lenght - str.length + 1).join("0"); }
沒有留言:
張貼留言