Avatar billede elskermad.dk Nybegynder
25. december 2004 - 14:10 Der er 5 kommentarer og
1 løsning

validering af tegn

hej eksperter!

har brug for at kunne validere et felt på forskellige måder

dertil har jeg brugt denne reg.exp indtil videre men vil gerne have den udvidet så flere tegn bliver gyldige:

var kuntal = /^[0-9\+ ]+$/;

det skal så være muligt at man må bruge "+" og "-" også

jeg har også brug for en hvor man kun må skrive tal og 1 "." (punktum)

og en som overstående hvor man må skrive tal 1 "." (punktum) og "+" og "-"

har forsøgt mig med disse, men virker desværre ikke :S

var kuntalminus = /^[0-9-+\+ ]+$/;
var kuntalpunktum = /^[0-9.\+ ]+$/;
var kuntalpunktumminus = /^[0-9.-+\+ ]+$/;

På forhånd mange tak! :)
Avatar billede roenving Novice
26. december 2004 - 06:01 #1
/^[0-9\+ ]+$/ betyder kun tal, + og mellemrum ...
/^[\d\+ -]+$/ betyder kun tal, +, - og mellemrum ...

-- 1 punktum, er det måske et decimaltal ?-)

F.eks.

/^\d+(\.\d+)?$/ betyder kun punktum, hvis der er noget efter ...

Så et gæt kunne være at du havde brug for at det var tilladt at skrive +/- før et tal:

/^[+-]?\d+$/ betyder muligvis et + eller - foran 1 eller flere cifre ...

/^[+-]?\d+(\.\d+)?$/ betyder muligvis et + eller - foran 1 eller flere cifre, evt. efterfulgt af et decimaltegn og et eller flere cifre !-)
Avatar billede elskermad.dk Nybegynder
26. december 2004 - 23:03 #2
huha det er fandme sejt... :) ærgeligt jeg ikke kan se logikken i det :S

smider du et svar?
Avatar billede roenving Novice
27. december 2004 - 01:27 #3
Du kan da i hvert fald få forklaringen:

// betyder afgrænsning af det regulære udtryk (ligesom "" eller ' ' bruges på tekststrenge !-)
^$ betyder at hele tekststrengen skal passe (fra start ^ til slut $)
[] bruges som en slags eller-angivelse til at angive at tegnene inde i kan være det ene eller det andet (her enten plus eller minus !-)
? efter betyder måske (altså 0 eller 1 forekomst af det foran !-)
\d betyder cifre (0-9)
() bruges til at gruppere
\. bruges fordi man skal escape tegn, som har en speciel betydning, og punktum betyder ellers et hvilken-som-helst tegn, så det betyder: bogstaveligt taget et punktum ...
+ betyder et eller flere af det (de !-) foregående tegn

-- derved kommer vi frem til:
[+-]?  = Muligvis et plus eller minus foran, men ikke nødvendigvis ...
\d+      = Et eller flere cifre ...
(\.\d+)?  = Muligvis et punktum efterfulgt af et eller flere cifre, men ikke et punktum uden cifre efter !o]

-- og velbekomme '-)
Avatar billede elskermad.dk Nybegynder
27. december 2004 - 15:34 #4
mange tak skal du have... nu har jeg lidt bedre forståelse af hvad der sker! :)
før lignede det jo blot en række tegn :)

det vil sige hvis jeg nu vil give andre tegn end +- lov til at være der skal det blot sættes i [] fx [+-*] ?

hvis der ikke var et \ foran punktumet ville det være alle tegn? er det kun 1 tegn der gives tilladelse til, eller kan man godt skrive 242..43 ?

du må have en fortsat god jul :)
Avatar billede roenving Novice
27. december 2004 - 15:53 #5
\. betyder 'bogstaveligt taget et punktum' og ingen tegn kan der være flere af, hvis ikke man eksplicit angiver det (med et efterfølgende + eller * eller ved en længde-angivelse !-)

-- og i dit første spørgsmål er der en krølle, for en hel masse tegn har en special-betydning, deriblandt _alle_ de tre, som findes inde i de firkantede paranteser, derfor ville jeg _altid_ sørge for at bindestregen var først eller sidst, for den har den special-betydning, at den angiver en range ([a-z] betyder f.eks. alle engelske bogstaver !-)

Så det kræver en særlig opmærksomhed, men som du kan se med punktummet, kan man komme omkring det ved at escape tegnet, altså en backslash foran, så hvis du udvider den skal du escape alle specialtegn:

[ ] / . - + * ( ) ^ $ ? { }
Avatar billede roenving Novice
27. december 2004 - 15:54 #6
-- og tak for point ;~}
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