測試文字功能,小工具,標題

記錄很重要,不然會浪費很多時間在找以前的記憶

一個人的氣度,決定他未來的高度。

2016年4月27日 星期三

JavaScript 字串補零

JavaScript 字串補零

補 0 的方法


第一種:使用遞迴的方式 

網路上找到的可以使用遞迴反覆的補足 "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");
}

沒有留言:

張貼留言