Dans le projet, j'ai rencontré un nombre similaire à «450000» doit être converti au format utilisé pour la comptabilité comptable, «450,000,00», qui se remplira automatiquement s'il n'y a pas suffisamment de deux chiffres après le millième et les points décimaux. Plusieurs méthodes de mise en œuvre ont été enregistrées.
PS: Si vous ne considérez pas les décimaux suivants, le moyen le plus rapide:
"12345678" .replace (/ [0-9] +? (? = (?: ([0-9] {3})) + $) / g, fonction (a) {return a + ','}); // Sortie 12 345 678
1. Implémenter dans une boucle
Fonction FormatNum (str) {var newstr = ""; Var Count = 0; if (str.indexof (".") == - 1) {for (var i = str.length-1; i> = 0; i -) {if (count% 3 == 0 && count! = 0) {newttr = str.charat (i) + "," + newttr; } else {newstr = str.charat (i) + newstr; } count ++; } str = newstr + ".00"; // Remplissez automatiquement les deux points décimaux console.log (str)} else {for (var i = str.indexof (".") - 1; i> = 0; i -) {if (count% 3 == 0 && count! = 0) {newttr = str.charat (i) + "," + newtr; // Si vous rencontrez un multiple de 3, ajoutez le "," signe} else {newrtr = str.charat (i) + newstr; // connecter un par un} count ++; } str = newstr + (str + "00"). substr ((str + "00"). indexof ("."), 3); console.log (str)}} formatNum ('13213.24'); // sortie 13,213.34formatNum ('132134.2'); // Sortie 132 134.20FormatNum ('132134'); // Sortie 132 134.00FormatNum ('132134.236'); // Sortie 132 134.2362. Utilisez la régularité (est-il nécessaire de juger le nombre de chiffres après le point décimal par vous-même? Veuillez m'informer s'il y a des règles plus intelligentes ~)
fonction 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 (newstr [1] .length <= 1) {// quand il n'y en a qu'un après le point décimal str_2 = str_2 + '.' + newstr [1] + '0'; console.log (str_2)} else if (newrtr [1] .length> 1) {// lorsque plus de deux décimales sont des décimales var = newr [1] .substr (0,2); var srt_3 = str_2 + '.' + décimales; console.log (srt_3)}}}; regexnum ('23424224'); // Sortie 2,42,224.00 RegexNum ('23424224.2'); // Sortie 2,42,224.20regexnum ('23424224.22'); // Sortie 2,42,224.22Regexnum ('23424224.23'); // Sortie 2,42,224.23Ce qui précède est l'intégralité du contenu de cet article. Pour plus d'informations sur JavaScript, vous pouvez consulter: "JavaScript Reference Tutorial" et "JavaScript Code Style Guide". J'espère également que tout le monde soutiendra davantage Wulin.com.