30. maj 2005 - 13:08Der er
15 kommentarer og 1 løsning
kun et punktum i streng
Jeg har en form hvor jeg bla. skal gemme en pris i ne mySQL database med som decimal(2) som også virker fint vis ikke der er mere end 1 punktum. Så jeg skal bruge et script der kan fjerne alle punktummerene og kun lade det sidste være...
det aller nemmeste er vel at folk kun kan skrive tilladte værdier i dit indput felt - en god regel er at man ikke skal tillade at brugeren skriver noget de ikke må.
explode: hvis du nu har en variabel: $belob = "1.000,95";
$exp = explode(".", $belob); // deler variablen op i et array
du har herefter $exp[0] og $exp[1] og der er lige med: $exp[0] = 1 og $exp[1] = 000,95
dem kan du sætte sammen igen - sådan her: $nybelob = $exp[0].$exp[1];
men som sagt tideligere ville jeg gå efter at begrænse hvad der kan skriver i formularen - evt dele op på to felter et til kr og et til øre.
hvis jeg var dig - ville jeg smutte over i javascript kategorien og få hjælp til en regexp som sørger for at man kun kan fylde det format i feltet som du vil have ;-)
Jeg laver kun sider til danskere, og jeg forventer at de bruger komma. Hvis din side er international, og du vil tillade at man bruger enten punktum eller komma, så tror jeg det bliver lidt svært.
Idanielsen>> ikke for at være "næbbet" - men hvordan kan du vide at det kun er danskere der ser/bruger på de sider du laver, man kan jo godt være f.eks amerikaner eller lignende og så bo her i DK?
Det kan jeg heller ikke. Men hvis sproget er dansk på siden, så vil det jo kun være dansktalende der kan bruge den.
Men skal man tillade både komma og punktum må reglen være: Der må være 0 eller 1 skilletegn, og dette skal være enten komma eller punktum, og det skal være max to cifre fra slutningen. På serveren skal kredefrapuls så bare erstatte komma med punktum, så kører det
jeg fandt selv et java script der virker, så det må værer avminarm der skal havde pointne.....
i kan lige få koden her:
<SCRIPT LANGUAGE="JavaScript"> function tjeck(f){ if(!f.txtpris.value!=""){ alert('Du har ikke angivet en pris'); f.txtoverskrift.focus(); return false }else{ reg = /^\d+(,\d{1,2})?$/; if(!f.txtpris.value.match(reg)){ alert('Du har indtastet prisen i et forkert format\n Feltet skal stå med tal og , som decimal og kun 2 decimaler er tilladt'); f.txtpris.focus(); return false } } } </script>
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.