28. juni 2007 - 15:24
Der er
2 kommentarer
Validering af beløb
Hej,
Jeg har en formular, hvor brugeren skal indtaste et beløb. Dette beløb skal jeg bruge til en beregning ((beløb/kurs)*100). Mit beløb må derfor ikke indeholde tusindseperatorer og decimaltegnet skal været et punktum.
Hvordan gør' jeg det med reg.exp.?
Jeg har prøvet flg.:
t = ((parseFloat(document.forms[0].f65.value.replace(/\./g,"")) / parseFloat(document.forms[0].f70.value.replace(",",".")))*100);
alert(t)
På forhånd tak.
Mvh ITmusen
-- men folk kan jo finde på det mærkeligste, f.eks. kunne det jo være at en englænder indtastede, så der var kommaer som tusind-separatorer og punktum som decimal-ditto ...
-- så jeg ville nok lave en funktion, der lige klarede det, dvs. først testede om der var mere end een af de tegn, hvis der var, så fjernede alle, der var forrest, og erstattede et evt. tilbageværende komma med et punktum (men måske er der noget i de nyeste regExp-ting, der kan tygge den, hvis der er, kender jeg dem så ikke !-)
-- en anden mulighed var at nægte at anerkende indtastnngen, hvis der var andet end to tal efter et sådant tegn, eller lignende ...
28. september 2007 - 18:40
#2
hvis du fx lader brugere intaste beløbet i et text-felt kan du jo:
<input type="text" onKeyUp="validateValue(this,'float')" id="Beloeb">
Script:
function validateValue(obj,type)
{
if(type == "float"){
if( !obj.value.match(/([\d\.]*)/) ){
alert("only digits (0-9) and period (.) allowed.")
obj.value = obj.value.replace(/([\d\.]+)(.)/g,"$1")
}
}
}
så forsvinder de tegn som ikke er 0-9 + "." og brugeren advares..