[php] ereg expressie, kom er niet uit!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil checken of een opgegeven woord (nickname) alleen maar bestaat uit cijfers en letters. Laat ik er nou helemaal niet uitkomen!

Wat ik ongeveer denk:

PHP:
1
2
3
4
5
6
7
8
// de te checken -voorbeeld- namen
$naam1 = "karel2003";
$naam2 = "karel@2003";

// de ereg expressie die in een if statementje komt
ereg('[a-zA-Z0-9]{lengtevanstring}', $naam1)

// $naam1 zou dus geldig zijn, $naam2 niet


Alleen hoe krijg ik de lengte van de te checken string nu daar?
Als ik de lengte in een var zet dan krijg ik het niet voor elkaar om die var in de expressie te krijgen. Kan heel goed aan mij liggen hor.. :*)
Daarbij de vraag, is dit wel de beste methode voor hetgeen ik wil?

[ Voor 11% gewijzigd door Verwijderd op 25-06-2003 14:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

kan niet gewoon

$myPattern = "[a-zA-Z0-9]{".strlen($naam1)."}";

en dan je ereg

ereg ($myPattern, $naam1)

[ Voor 33% gewijzigd door Verwijderd op 25-06-2003 15:01 ]


Acties:
  • 0 Henk 'm!

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08 23:34
Is het niet mogelijk om uw volledige regex in een variabele te zetten:

PHP:
1
$regex = "([a-z][A-Z]{" . $lengte . "})"


en deze variabele gebruiken in de functie ereg() ?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 25 June 2003 @ 14:59:
kan niet gewoon

$myPattern = "[a-zA-Z0-9]"+strlen($naam1);

en dan je ereg

ereg ($myPattern, $naam1)
Nee, je kunt beter controleren of ie van het begin tot het einde uit cijfers of letters bestaat.
PHP:
1
2
$myPattern = "^[a-zA-Z0-9]*$";
ereg ($myPattern, $naam1);

[ Voor 4% gewijzigd door kvdveer op 25-06-2003 15:03 ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Juaron en Feyd-Rautha, bedankt! Ik heb jullie manier gebruikt, had er niet aan gedacht om eerst de expressie te parsen en in een var te zetten.
kvdveer, jouw manier werkt niet bij mij?

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 25 June 2003 @ 15:07:
Juaron en Feyd-Rautha, bedankt! Ik heb jullie manier gebruikt, had er niet aan gedacht om eerst de expressie te parsen en in een var te zetten.
kvdveer, jouw manier werkt niet bij mij?
Mijn versie is qua regexp correcter dan de alternatieven hoor... Daarnaast: het werkt hier gewoon:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
saturnus-deb:~# php4

<?
$naam1 = "test123";
$naam2 = "test123@";
$myPattern = "^[a-zA-Z0-9]*$";
if( ereg ($myPattern, $naam1)) echo "1 is correct\n";
if(!ereg ($myPattern, $naam2)) echo "2 is niet correct\n";
?>

X-Powered-By: PHP/4.1.2
Content-type: text/html


1 is correct
2 is niet correct

Localhost, sweet localhost

Pagina: 1