Im Projekt habe ich auf eine ähnliche Zahl gestoßen, die '450000' ähnlich ist, in das Format umgewandelt werden, das für die Buchhaltung "450.000,00" verwendet wird, was sich automatisch füllt, wenn nach den Tausendsten und Dezimalpunkten nicht genügend zwei Ziffern vorhanden sind. Es wurden mehrere Implementierungsmethoden aufgezeichnet.
PS: Wenn Sie die folgenden Dezimalpunkte nicht berücksichtigen, ist der schnellste Weg:
"12345678" .Replace (/[0-9]+? (? = (?: ([0-9] {3})+$)/g, Funktion (a) {return a+','}); // Ausgabe 12 345 678
1. Implementieren Sie in einer Schleife
Funktionsformatnum (str) {var NewStr = ""; var count = 0; if (Str.Indexof (".") ==-1) {für (var i = str.length-1; i> = 0; i-) {if (count % 3 == 0 && count! } else {NewStr = str.charat (i) + NewStr; } count ++; } Str = NewStr + ".00"; // Füllen Sie automatisch die beiden Dezimalpunkte-Konsolen.log (str)} else {für (var i = str.Indexof (".")-1; i> = 0; i-) {if (count % 3 == 0 && count! // Wenn Sie auf ein Vielfaches von 3 stoßen, fügen Sie das "," sign} else {newstr = str.charat (i) + newstr hinzu; // verbinde eins nach eins} count ++; } Str = NewStr + (str + "00"). substr ((Str + "00"). Indexof ("."), 3); console.log (str)}} formatnum ('13213.24'); // Ausgabe 13.213.34Formatnum ('132134,2'); // Ausgabe 132,134.20Formatnum ('132134'); // Ausgabe 132,134.00Formatnum ('132134,236'); // Ausgabe 132,134,2362. Verwenden Sie die Regelmäßigkeit (Muss die Anzahl der Ziffern nach dem Dezimalpunkt selbst beurteilen? Bitte benachrichtigen Sie mich, wenn es intelligenteren Regeln gibt ~).
Funktion regexnum (str) {var regex =/(/d) (? = (/d/d/d)+(?!/d))/g; if (Str.Indexof (".") == -1) {str = str.replace (regex, ',') + '.00'; console.log (str)} else {var newStr = str.split ('.'); var str_2 = newstr [0] .Replace (regex, ','); if (newSt [1] .Length <= 1) {// Wenn es nur einen nach dem Dezimalpunkt Str_2 = str_2 + 'gibt.' + newstr [1] + '0'; console.log (str_2)} else if (newSt [1] .Length> 1) {// Wenn mehr als zwei Dezimalstellen var decimals = newSt [1] .Substr (0,2) sind; var srt_3 = str_2 + '.' + Dezimalstellen; console.log (srt_3)}}}; regexnum ('23424224'); // Ausgabe von 2,42,224,00 Regexnum ('2342424,2'); // Ausgabe von 2,42,224,20Regexnum ('2342424,22'); // Ausgabe von 2,42,224,22222222 ('23424224,23'); // Ausgabe von 2,42,224,23Das obige ist der gesamte Inhalt dieses Artikels. Weitere Informationen zu JavaScript finden Sie unter: "JavaScript Reference Tutorial" und "JavaScript Code Style Guide". Ich hoffe auch, dass jeder wulin.com mehr unterstützt.