Vorbereitung vor dem Schreiben

Im Folgenden sind die wichtigsten Kenntnisse aufgeführt, die zum Schreiben dieser Methode benötigt werden:

1. charAt(index): Gibt das Zeichen an der angegebenen Position zurück.

2. substr(start, length): Gibt eine Zeichenkette der angegebenen Länge zurück, beginnend an einer angegebenen Position.

Parameter:

  • start:Erforderlich. Die Startposition der zu extrahierenden Zeichenkette.

  • length:Optional. Die Anzahl der in der zurückgegebenen Zeichenkette enthaltenen Zeichen. Wenn length <= 0, wird eine leere Zeichenkette zurückgegeben; wenn length nicht angegeben ist, erstreckt sich die extrahierte Zeichenkette von start bis zum Ende der Zeichenkette.

3. substring(start, end): Gibt die angegebene Teilzeichenkette zurück.

Parameter:

  • start:Gibt die Startposition der Teilzeichenkette an; der Index wird ab 0 gezählt.

  • end:Gibt die Endposition der Teilzeichenkette an; der Index wird ab 0 gezählt.

Sonderfälle:

Wenn nur ein Parameter angegeben wird, wird er standardmäßig als Startposition festgelegt, und die Zeichen von diesem Parameter bis zum Ende der Zeichenkette werden zurückgegeben.

Zwischen start und end wird der kleinere Wert als Startposition und der größere als Endposition verwendet. Zum Beispiel geben a.substring(1, 5) und a.substring(5, 1) dieselbe Zeichenkette zurück.

Wenn start oder end NaN oder negativ ist, wird es auf 0 gesetzt.

Spezifischer Code

function ToString(n) {

    if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)){
        return "数据非法";  //判断数据是否大于0
    }

    var unit = "千百拾亿千百拾万千百拾元角分", str = "";
    n += "00";  

    var indexpoint = n.indexOf('.');  // 如果是小数,截取小数点前面的位数

    if (indexpoint >= 0){

        n = n.substring(0, indexpoint) + n.substr(indexpoint+1, 2);   // 若为小数,截取需要使用的unit单位
    }

    unit = unit.substr(unit.length - n.length);  // 若为整数,截取需要使用的unit单位
    for (var i=0; i < n.length; i++){
        str += "零壹贰叁肆伍陆柒捌玖".charAt(n.charAt(i)) + unit.charAt(i);  //遍历转化为大写的数字
    }

    return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整"); // 替换掉数字里面的零字符,得到结果

}

Online-Test

Autor-Nickname: Lichee Lychee

Autor-E-Mail: 442070894@qq.com