Avatar billede mccookie Seniormester
04. marts 2004 - 11:40 Der er 19 kommentarer og
1 løsning

PHP og reg.exp

if(!preg_match("/^[a-zæøå0-9]{5,}$/i", $titel))

Denne her kan jeg ikke lige få til at accepetere melllemrum hvad har jeg gjort forkert?
Avatar billede muddi Praktikant
04. marts 2004 - 11:46 #1
tror nok du bare skal tilføje [space]

if(!preg_match("/^[space][a-zæøå0-9]{5,}$/i", $titel))
Avatar billede mccookie Seniormester
04. marts 2004 - 11:48 #2
Den tror den ikke på..... den cutter den over lige på midten
Avatar billede detox Nybegynder
04. marts 2004 - 12:14 #3
Måske:

if(!preg_match("/^[a-zæøå0-9\s]{5,}$/i", $titel))
Avatar billede mccookie Seniormester
04. marts 2004 - 12:18 #4
Den cutter bare inputet over:

eks. 1212 1212 så cutter den ved det første 1212
Avatar billede detox Nybegynder
04. marts 2004 - 12:23 #5
Så er det ikke den linie der 'cutter' noget væk, den under søger bare om den matcher. Altså:

if(!preg_match("/^[a-zæøå0-9\s]{5,}$/i", $titel)) {
  // Den matcher ikke
} else {
  // Den er ok!
}

Måske du skal vise lidt mere kode?
Avatar billede mccookie Seniormester
04. marts 2004 - 12:25 #6
if(!preg_match("/^[a-zæøå0-9][\t\n\f\r]{5,}$/i", $titel)) {
    $_SESSION['status'] = "fejl"; // Brugeren har rettet i oplysningerne og de var ikke valid
    $antal_fejl++; }
Avatar billede mccookie Seniormester
04. marts 2004 - 12:26 #7
Men nogengange er der et mellemrum og andre gange ikke!
Avatar billede mccookie Seniormester
04. marts 2004 - 12:27 #8
if(!preg_match("/^[a-zæøå0-9]]{5,}$/i", $titel)) {
    $_SESSION['status'] = "fejl"; // Brugeren har rettet i oplysningerne og de var ikke valid
    $antal_fejl++; }
Avatar billede detox Nybegynder
04. marts 2004 - 12:29 #9
if(!preg_match("/^[a-zæøå0-9\s]{5,}$/i", $titel)) {
    $_SESSION['status'] = "fejl"; // Brugeren har rettet i oplysningerne og de var ikke valid
    $antal_fejl++; }

Med andre ord dette ændrer ikke noget ved $titel (den tjekker kun).
Avatar billede detox Nybegynder
04. marts 2004 - 12:31 #10
Hvis "1212 1212" bliver kortet af til "1212", må det ske et andet sted i din kode.
Avatar billede erikjacobsen Ekspert
04. marts 2004 - 12:32 #11
Det med at smide noget væk efter et mellemrum kommer fx tit når du laver et
html-tag. Der er fx. lidt (hehe) forskel på de to felter:

<? $titel="Da Viggo blev borgmester"; ?>
<input type="text" name="t1" value=<?= $titel?>>
<input type="text" name="t1" value="<?= $titel?>">

...men det er bare et gæt...
Avatar billede detox Nybegynder
04. marts 2004 - 12:33 #12
Du kan osse bare bruge et mellemrum:

if(!preg_match("/^[a-zæøå0-9 ]{5,}$/i", $titel)) {
Avatar billede mccookie Seniormester
04. marts 2004 - 12:33 #13
men det er f.eks. hvis jeg laver følgende indtastning:

Hejsa Med
Avatar billede mccookie Seniormester
04. marts 2004 - 12:35 #14
detox>> Den køber den heller ikke
Avatar billede detox Nybegynder
04. marts 2004 - 12:35 #15
Jeg tror osse mere på erikjacobsen's gæt, det er vigtigt du bruger apostroffer eller gåseøjne i dine html tags.
Avatar billede mccookie Seniormester
04. marts 2004 - 12:36 #16
Udtrykker skal lade følgende passere:

En tekststreng der min. 5 karaktere lang og som kun indeholder tal 0-9 eller bostaver a-zA-ZæøåÆØÅ og der kan være et eller flere mellemrum
Avatar billede detox Nybegynder
04. marts 2004 - 12:37 #17
Det gør den osse. Test:

$titel = '1212 1212';
if(!preg_match("/^[a-zæøå0-9 ]{5,}$/i", $titel)) {
    echo "Noway!";
} else {
    echo $titel;
}
Avatar billede mccookie Seniormester
04. marts 2004 - 12:40 #18
Hehe
Erikjocobsen>> Tja, positivt ment, det som ingen andre lige tænker på - Bemærker du! hehe
Det var jo netop den lille detalje...
Post et svar jer der har bidraget til oppklarningen
Og erik du får endnu en fantasiEkspertStjerne for din bideragelse :)
Avatar billede erikjacobsen Ekspert
04. marts 2004 - 12:43 #19
Det er en klassiker. Men jeg samler ikke på point.

Faktisk laver jeg yderligere en klassisk fejl. Det skal faktisk være

<input type="text" name="t1" value="<?= htmlentities($titel)?>">
Avatar billede detox Nybegynder
04. marts 2004 - 12:46 #20
En lille men væsentlig detalje ;o) (eller to). Men jeg tror det får en ende i nyere versioner af HTML, de vil ikke være så tilgivende overfor fejl.
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

IT-JOB

Capgemini Danmark A/S

Client Partner

Netcompany A/S

Linux Operations Engineer

KMD A/S

Partner Manager

BEC Financial Technologies

Senior Platform/System Engineer