formatering af tal med punktum for hver gange tusind
Jeg ønsker inspiration til en javascript funktion, der kan formatere et tal (streng) fra ene cifre til cifre adskildt med punktum efter hvert 3. Tallet kan variere i længde!
eks. 100000000 -> 100.000.000
jeg har lavet følgende regexp til at teste om tallet/strengen allerede er korekt formatret: /(^[0-9]{1,3}(\.[0-9]{3})*(\.[0-9]{3})$)/ig
jeg har først tænkt på at bruge $1 ... $9, men det er ikke fedt, jeg ved ikke umiddelbart hvor langt tallet er og så er der jo kun mulighed for et mindre en 999.999.999.999.999.999.999.999.999 ;)
Jeg har lavet en lidt "quick'n'dirty" implementation - det skal forstås at den ikke er helt optimeret endnu, men den virker.
<script language="JavaScript" type="text/javascript"> <!-- function formatInt (int) { var separator = " "; var delimitor = "."; var komma = ",";
var subnum = ""; var kommapos = int.indexOf(komma);
if (kommapos != -1) { subnum = int.substr(kommapos); int = int.substr(0,kommapos); }
int = int.replace (new RegExp(separator, "g"), ""); var regexp = new RegExp("\\B(\\d{3})( |$)"); while (int.search(regexp) >= 0) { int = int.replace(regexp, separator+"$1"); }
while (int.search(" ") >= 0) int = int.replace(" ", delimitor); return int+subnum; }
jeg har opbygget scriptet med en regexp som ønsket, men ville i realiteten nok hellere lave det med et loop og et modulus check. Det er op til dig.
/ Lars
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.