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);
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
-- 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 ...
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..
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.