Avatar billede w13 Novice
20. oktober 2007 - 00:50 Der er 12 kommentarer og
1 løsning

Tjek for forekomster af specialtegn med regexp

Hej Eksperter.

Jeg har desværre ikke forstand på regexp, og har ledt forgæves efter en funktion, der tester for forekomster af følgende tegn: & . : , ; ' % / \ "

Nogen bud?
På forhånd tak. =)
Avatar billede w13 Novice
20. oktober 2007 - 00:57 #1
Nå. Så lærte jeg lige det...

F.eks. et tjek for punktum:

string.match(/[/.]/)
Avatar billede olebole Juniormester
20. oktober 2007 - 01:41 #2
<ole>

string.match(/\./)  ;o)

- men hvad er det præcis, du skal?

/mvh
</bole>
Avatar billede olebole Juniormester
20. oktober 2007 - 01:46 #3
En mere 'sparsom' måde at teste, om ét af de nævnte tegn er tilstede, er at bruge test-metoden:
    var bContainsChar = (/[&.:,;'%\/\\\"]+/).test(string);  // Boolean
Avatar billede w13 Novice
20. oktober 2007 - 03:09 #4
Det jeg skulle, var bare at validere "ønsket albumnavn" til et billedgalleri. Og da mine billedalbum egentlig bare oprettes som mapper, er der jo ikke mange tilladte tegn. Og så har jeg ikke før kastet mig ud i regexp, og ville finde den bedste metode. Jeg vil forsøge din i morgen, da jeg lige har haft lidt problemer med: "
Avatar billede olebole Juniormester
20. oktober 2007 - 12:24 #5
Så ville jeg acceptere de tilladte tegn (og kun dem) i stedet:
    if ( !(/^[a-z0-9_-]+$/gi).test(string) ) {
        // Der er ulovlige tegn
    }

NB: Søgningen er case-insensitive, så du behøver ikke tilføje store bogstaver  :)
Avatar billede w13 Novice
20. oktober 2007 - 13:12 #6
Takker. :) Det må lige prøves.
Avatar billede olebole Juniormester
20. oktober 2007 - 13:28 #7
Selvtakker - bare spørg til virkemåden, hvis du kommer i tvivl, når du har tid til at sidde lidt med koden  ;o)
Avatar billede w13 Novice
20. oktober 2007 - 13:54 #8
Jeg tror, jeg er nogenlunde inde i det. /gi indikerer, at det er globalt og case-insensitive, right?
Men hvad er det, ^ og $ indikerer?
Avatar billede olebole Juniormester
20. oktober 2007 - 14:18 #9
Korrekt omkring 'gi'  ;o)

^ indikerer begyndelsen af strengen - og $ indikerer slutningen. Havde jeg ikke sat de to ind, hvor de sidder, ville et enkelt af de søgte tegn i strengen være nok til at få testen til at returnere true.
Nu skriver jeg, at _alt_ mellem begyndelsen og slutningen af strengen skal bestå af tegnene imellem klammerne.

- forståeligt?  :)
Avatar billede olebole Juniormester
20. oktober 2007 - 14:20 #10
NB: Det er vigtigt, at du skriver bindestregen til sidst. Ellers har den en anden betydning ... ligesom den har det ved 'a-z' og '0-9'  ;o)
Avatar billede w13 Novice
20. oktober 2007 - 16:44 #11
Gi'r jo god mening, ja. =)
Avatar billede fucke Nybegynder
27. november 2007 - 14:30 #12
Hej, jeg forsøger at bruge dette til at tjekke at et felt i en form ikke indeholder nongen specialtegn, da det er et password som skal gemmes i en mysql database.
Men jeg kan ikke rigtig finde ud af hvordan jeg skal sætte det ind.
Er 'test' en javascript funktion? eller skal der står noget andet der? og kan jeg der hvor der står string godt bare referere til et form felt?
På forhånd tak.
Avatar billede w13 Novice
27. november 2007 - 14:32 #13
Ja, nej og ja. =)

Men husk, at JavaScript altid kan omgås. Hvis brugeren slår JavaScript fra, bliver din validering ikke kørt. Så du bør også tjekke, når du gemmer i db.
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