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.