Oprettet man. d. 10. september 2012 kl. 10:55:36

dennisbjorn
dennisbjorn (5.905 point. Point ude: 0)

Validering af valuta

Jeg bruger nedenstående i forbindelse med validering af et input felt i en form.

Hvordan kan jeg udbygge scriptet, således at det accepterer punktum som tusindtals-separator?




    {
    $Value=document.forms.BrugerForm.cost.value;
    $myRegexp = /^[1-9]\d*(,\d|,\d{2})?$/;
    if (!$myRegexp.test($Value) && (error==0))           
      {       
        alert ('Pris skal angives med 2 decimaler uden bogstaver og tegn - og ingen tusindtals-separator!');
        document.forms.BrugerForm.cost.focus();
        error = 1;       
      }
    }

Skrevet man. d. 10. september 2012 kl. 11:26:53| #1

ronols
ronols (24.866 point)
olsensweb.dk/
google js regexp thousand separator and decimal separator
denne ser interessant ud http://stackoverflow.com/ (...) kig på den der er flueben ud for

/((^\d{1,3}(\.\d{3})+(,\d+)?)$)/

Skrevet man. d. 10. september 2012 kl. 11:27:10| #2

olebole
olebole (216.733 point)
<ole>

Den, der har skrevet scriptets alert, mener slet ikke, der må findes en tusindtalsseparator. Prøver I lige at blive enige først?  =)

/mvh
</bole>

Skrevet man. d. 10. september 2012 kl. 11:30:43| #3

claes57
claes57 (36.606 point)
den første linje - bare fjern dem

$Value=document.forms.BrugerForm.cost.value.replace( /\./g,'' );

Skrevet man. d. 10. september 2012 kl. 11:32:26| #4

olebole
olebole (216.733 point)
@ronols: #2 var henvendt til spørgeren  *o)

Det sidste spørgsmålstegn i din RegExp skal dog nok slettes, hvis tallet skal angives med 2 decimaler. Jeg er dog ikke helt sikker på, man kan stole på alert'en  =)

Skrevet man. d. 10. september 2012 kl. 11:34:49| #5

olebole
olebole (216.733 point)
#3: Den kommentar må vist høre til et helt andet spørgsmål  *D

Skrevet man. d. 10. september 2012 kl. 11:39:26| #6

dennisbjorn
dennisbjorn (5.905 point)
svaret fra Ronols giver det ønskede resultat - du må gerne smide et svar.

Alert teksten var tiltænkt det først script - og altså ikke tilrettet til den ønskede ændring.

Tak for hjælpen :-)

Skrevet man. d. 10. september 2012 kl. 12:01:29| #7

olebole
olebole (216.733 point)
Hehe ... så prisen skal altså ikke, som der står i alert'en, angives med to decimaler  =)

Skrevet man. d. 10. september 2012 kl. 12:35:42| #8

dennisbjorn
dennisbjorn (5.905 point)
Den færdig funktion ser således ud:


function validate_form()
    {
    error = 0;
    {
    $Value=document.forms.BrugerForm.cost.value;
    $myRegexp = /((^\d{1,3}((\.\d{3})?)+(,\d+)?)$)/;
    if (!$myRegexp.test($Value) && (error==0))                                                           
      {       
        alert ('Pris skal skrives med tusindtalsseparator og evt. to decimaler således 0.000,00');       
        document.forms.BrugerForm.cost.focus();
        error = 1;       
      }
    }

   
    if(error == 0)
    document.forms.BrugerForm.submit();
    }

Skrevet man. d. 10. september 2012 kl. 13:15:33| #9

olebole
olebole (216.733 point)
Du kan spare et par parenteser. Derudover tillader din RegExp over to decimaler. Denne tillader ingen eller præcis to decimaler:

/^\d{1,3}((\.\d{3})?)+(,\d{2})?$/

Skrevet man. d. 10. september 2012 kl. 13:29:56| #10

dennisbjorn
dennisbjorn (5.905 point)
smukt olebole - vil du evt. dele point med @ronols?

Skrevet man. d. 10. september 2012 kl. 13:33:34| #11

olebole
olebole (216.733 point)
Ellers tak, jeg samler ikke point  =)

Skrevet tir. d. 11. september 2012 kl. 09:19:15| #12

dennisbjorn
dennisbjorn (5.905 point)
@ronols; husk svar (=point + lukning)

Skrevet tir. d. 11. september 2012 kl. 12:36:27| #13


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

JQuery skal hente indhold via AJAX

Oprettet den 21. maj 2013 kl. 12.51
cmplicity giver 60 point for svar | Giv et svar »

Første ID er tom ?

Oprettet den 11. maj 2013 kl. 11.54
ingeman giver 200 point for svar | Giv et svar »

alert box frem hvis der intet indhold er på siden

Oprettet den 8. maj 2013 kl. 19.43
tobrukDk giver 60 point for svar | Giv et svar »

Seneste guides

Slettet
Håndtering af tekstoversættelse i...
Parameteriseret tekstformatering i C#
C++ Historie og Programmering - Del 1







Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du få 1 terabyte gratis plads hos Flickr

Yahoo har relanceret sin fototjeneste Flickr med 1 terabyte gratis plads til brugernes billeder og videoer.


Nyheder fra Computerworld

Teaser billede

Mistanke: Microsoft kigger med i dine Skype-beskeder

Microsoft læser med i de beskeder, som du sender på Skype.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger