Avatar billede itmusen Nybegynder
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
Avatar billede roenving Novice
29. juni 2007 - 01:07 #1
-- 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 ...
Avatar billede montago Praktikant
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..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester