Den här funktionen tror jag borde fungera: function formatCurrency(v){ v=v.replace(/\./g,','); //Tillåt punkter som kommatecken (engelskans syntax), tex 12.5 -> 12,5 v=v.replace(/ /g,''); //Ignorera mellanslag, tex godkänns " 5 4 , 0 " (54) och "1 200" (1200) if(v.substr(-2)=="kr"){ //Godkänn att ett tal slutar med kr. v=v.substr(0,v.length-2); } if(!(/^\d*,{0,1}\d+$/).test(v)){ //Felaktig indata return "0,00 kr"; //? } var p=v.split(','); if(p[0]==''){ //Godkänn inte engelsk syntax som ",50" return "0,00 kr"; //? } if(p.length==1){ p.push('0'); } var nor=Math.round(100*((p[0]-0)+(('0.'+p[1])-0))); var ipart=Math.floor(nor/100), dstr=(nor%100)+''; if(dstr.length==1)dstr+='0'; var istr='', ap; while(ipart>=1000){ //Ändra while till if om du bara vill ha tusenavgränsare, inte också miljon-, miljard-, etc. som det är just nu ap=(ipart%1000)+''; ap=('000').substr(ap.length)+ap; istr=' '+ap+istr; ipart=Math.floor(ipart/1000); } istr=ipart+istr; var res=istr+','+dstr+' kr'; return res; } Du får naturligtvis ändra vissa detaljer till hur du vill ha det. Anropa den som onchange="var f=document.getElementById('resmal_pris');f.value=formatCurrency(f.value);" Simon | | Hej! Jag har ett litet javascriptproblem. Efter att man knackat in priset ex. 2400 och lämnar inputen så ska ett litet script ändra texten i inputen till 2 400,00 kr. Fler ex. inknackat 1200,50 ska bli 1 200,50 kr En liten början kan kanske se ut så här: onchange="document.getElementById(\'resmal_pris\').value=??????;" /Lars |
|