Avatar billede princewhite Nybegynder
27. december 2005 - 23:45 Der er 13 kommentarer

Multiply og fjern

Hejsa,

Sidder her og leger med noget betalingsværk, men mangler meget et lille javescript som jeg bare ikke mestre, så håber nogen kan hjælpe mig :)

Funktionen skal simpelthen blot tage værdie fra felt 1 fjerne kommaer og punktummer og gange med 100...

Takker mange gange :)
Avatar billede roenving Novice
27. december 2005 - 23:47 #1
Hvordan fjerne kommaer og punktummer ?-)

-- er det decimal-tal, hvor der også er 1000-separatorer eller hvad mener du ?o]
Avatar billede princewhite Nybegynder
27. december 2005 - 23:51 #2
Det er fordi jeg sidder og forsøger at lave en indbetalingsform, men der indtaster folk i kr., men det skal omregnes til øre inden værdien bliver sendt videre :) så blev lige pludselig i tvivl om kommaer og punktummer egentlig overhovedet skal fjernes..
Avatar billede roenving Novice
28. december 2005 - 00:04 #3
Skal der tages højde for alle mulige måder at skrive på (1.987,45 - 1987,45 - 1,987.45 - 1987.45 samt f.eks. 20,- og 3,5 !-) skal man jo teste for alle mønstrene, men egentlig er det ikke så omfattende !o]

function makeNumberInHundreds(val){//input skal så være feltværdien
  if(val.match(/^\d+([\.,]\d{3})*[\.,]\d{2}$/)
    return +val.replace(/[\.,]/g,"");
  /*ovenstående validerer så ikke om det er en korrekt sammensætning
  -- f.eks. vil 1,987,45 blive accepteret og returnere 198745 */
  if(val.match(/^\d+([\.,]\d{3})*[\.,]\d$/)
    return +(val.replace(/[\.,]/g,"") + "0");
  if(val.match(/^\d+([\.,]\d{3})*(,-)?$/)
    return +(val.replace(/,-/,"").replace(/[\.,]/g,"") + "00");
}

-- absolut utestet !-)
Avatar billede princewhite Nybegynder
28. december 2005 - 00:24 #4
ok takker, vil lege lidt med det :)

vil den så skulle kaldes sådan

<input type="text" name="money" onChange="makeNumberInHundreds();">
Avatar billede roenving Novice
28. december 2005 - 00:27 #5
Næsten, f.eks. sådan:

<input type="text" name="money" onChange="this.form.payMoney.value=makeNumberInHundreds(this.value);">
<input type="hidden" name="payMoney">
Avatar billede princewhite Nybegynder
28. december 2005 - 00:40 #6
må nok hellere få søvn, kan simpelthen ikke få den til at tage nogen værdi med over :)
Avatar billede roenving Novice
28. december 2005 - 00:41 #7
Kan du ikke linke til en simpel udgave af lige det ?-)
Avatar billede princewhite Nybegynder
28. december 2005 - 00:48 #8
Avatar billede roenving Novice
28. december 2005 - 00:53 #9
Ufff ...

-- der mangler slut-paranteser på alle if-tingene:

<script type="text/javascript">
function makeNumberInHundreds(val){
  if(val.match(/^\d+([\.,]\d{3})*[\.,]\d{2}$/))
    return +val.replace(/[\.,]/g,"");
    if(val.match(/^\d+([\.,]\d{3})*[\.,]\d$/))
    return +(val.replace(/[\.,]/g,"") + "0");
  if(val.match(/^\d+([\.,]\d{3})*(,-)?$/))
    return +(val.replace(/,-/,"").replace(/[\.,]/g,"") + "00");
}
</script>
Avatar billede roenving Novice
28. december 2005 - 00:56 #10
Iøvrigt skal der nok gøres noget mere ved det, da f.eks. 1987,500 bliver opfattet som et heltal og derfor returnerer 198750000 !-)

Hrm, jeg vender tilbage i morgen !o]
Avatar billede princewhite Nybegynder
28. december 2005 - 00:57 #11
:) nu er der ihvertfald masser af fejl :D
Avatar billede princewhite Nybegynder
28. december 2005 - 00:58 #12
takker mange gange :)
Avatar billede roenving Novice
28. december 2005 - 16:22 #13
Hvad har du tænkt dig at acceptere ?-)

-- man kan sagtens lave noget, der kigger relativt intelligent på tallene, og derfor i de allerfleste tilfælde vil returnere et korrekt tal, men mon ikke det er mere relevant at sætte nogle rimelige regler, som først valideres, og evt. returnerer en fejl, hvis de er overtrådt !o]

-- jeg kunne forestille mig, at det kun var tilladt at bruge decimaltegn (og så kunne vi sagtens være ligeglade, om det var punktum eller komma !-) men ikke andet end tal ellers ...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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