regular expressions - erstatte alle ugyldige tegn

Tags:    php

Jeg har et tekstfelt hvor brugere kan indtaste en tekst der skal bruges som henvisning i en opremsning af tekster (i ved: <a name="noget">;)

Får at lette brugervenligheden, skal jeg bruge en funktion der gør 3 ting:

Når brugeren har indtastet fx følgende:

"Spørgsmål om videre udvikling af jens' dødemandsknap"

så skal der ske dette:

1. Systemet erstatter alle "ulovlige tegn" (', ", (komma), ., @ etc) med "" (altså ingenting) samt æ =ae ø=oe å=aa

2: Erstatter alle mellemrum med "_" (str_replace(" ", "_", $str) <== det kan jeg da selv, men hvis der ved en fejl er trykket mellemrum 2 (eller 3 eller 4...) gange efter hinanden skal det stadig kun erstattes med én _

3: Poppe en besked op (evt en javascript-alert-boks) med teksten:
"Dit hotlink er rettet til:
Spoergsmaal_til_videre_udvikling_af_jens_doedemandsknap

OK / Annullér"

Nogen der kan trylle?



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jeg har et tekstfelt hvor brugere kan indtaste en tekst der skal bruges som henvisning i en opremsning af tekster (i ved: <a name="noget">;)

Får at lette brugervenligheden, skal jeg bruge en funktion der gør 3 ting:

Når brugeren har indtastet fx følgende:

"Spørgsmål om videre udvikling af jens' dødemandsknap"

så skal der ske dette:

1. Systemet erstatter alle "ulovlige tegn" (', ", (komma), ., @ etc) med "" (altså ingenting) samt æ =ae ø=oe å=aa

2: Erstatter alle mellemrum med "_" (str_replace(" ", "_", $str) <== det kan jeg da selv, men hvis der ved en fejl er trykket mellemrum 2 (eller 3 eller 4...) gange efter hinanden skal det stadig kun erstattes med én _

3: Poppe en besked op (evt en javascript-alert-boks) med teksten:
"Dit hotlink er rettet til:
Spoergsmaal_til_videre_udvikling_af_jens_doedemandsknap

OK / Annullér"

Nogen der kan trylle?

For at undgå de dobbelte _ vil jeg tro at du kan erstatte alle dobbeltmellemrum med et enkelt mellemrum. Jeg er dog lidt i tvivl om det gør som det skal, eller om det kun halverer antallet af mellemrum.

æ, ø og å kan erstattes på samme måde som du selv har skrevet med understregen. Husk også Æ, Ø og Å.

Jeg vil putte funktionen der fjerner ulovlige tegn til sidst stedet for først. jeg tror du kan bruge eregi_replace



[qoute]For at undgå de dobbelte _ vil jeg tro at du kan erstatte alle dobbeltmellemrum med et enkelt mellemrum. Jeg er dog lidt i tvivl om det gør som det skal, eller om det kun halverer antallet af mellemrum.

æ, ø og å kan erstattes på samme måde som du selv har skrevet med understregen. Husk også Æ, Ø og Å.

Jeg vil putte funktionen der fjerner ulovlige tegn til sidst stedet for først. jeg tror du kan bruge eregi_replace

Det er såmænd også det der er planen, men jeg skal have nogen til at lave bl.a eregi_replace'en da jeg mildest talt er handikappet i dette *GG*

Kom i øvrigt også til at tænke over noget andet - er der flere æ'er ø'er å'er efter hinanden skal dette (i lighed med mellemrum) også barberes ned til et enkelt...



Fik svar på www.eksperten.dk

http://www.eksperten.dk/spm/377360



t