Versio

regex

Overzicht Reageren

Merijn Venema

Merijn Venema

12/02/2011 16:29:25
Quote Anchor link
beste leden,

M`n regex is niet al te goed, dus vandaar dat ik hier kom:

Ik heb nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
function valSafeString ($str)
{

    return (!preg_match("/^([^a-zA-Z0-9_-])+$/i", $str)) ? false : true;
}

?>


Waarom geeft deze een false terug bij valSafeString("Merijn"); ?
Of eigenlijk elke willekeurige tekst. Door de bomen zie ik het bos even niet meer..

Iemand een idee?
 
PHP hulp

PHP hulp

25/05/2012 14:23:18
Gesponsorde koppelingen:
 
Jelmer rrrr

Jelmer rrrr

12/02/2011 16:30:37
Quote Anchor link
Die ^ tussen je blokhaakjes betekent "alles behalve". Dus dat stukje [^a-zA-Z0-9_-] matcht alles behalve a-zA-Z0-9_-.

Die ronde haakjes heb je trouwens niet nodig. Die zijn om matches te onthouden, zodat je er later naar terug kan referen via $1 etc in de expressie zelf.
Gewijzigd op 12/02/2011 16:31:35 door Jelmer rrrr
 
Merijn Venema

Merijn Venema

12/02/2011 16:36:18
Quote Anchor link
ja dat snap ik, maar kijk: ik wil dus checken of die [^ regex] niet matched tegen de expressie, de eerste ^. Als dit dus een error geeft, krijg je die false terug.

Maar het stomme is, als ik dit doe: "/^([-a-z0-9_-])+$/i"
matched hij wel alles, zolang ik geen hoofdletters op geef.

Stomme regex shit.
 
Jelmer rrrr

Jelmer rrrr

12/02/2011 17:10:56
Quote Anchor link
Jep, maar beginnen met ^ en eindigen met $ betekent dat heel $str moet voldoen aan de expressie. Laat je die twee weg, dan zoekt hij ook binnen $str en hoeft maar een deel te voldoen.

Dus of zo en als de expressie dan matcht, zit er een illegaal karakter in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/[^a-zA-Z0-9_-]+/


Of zo en als de expressie dan matcht, bestaat de invoer uit alleen één of meer legale karakters. (immers die plus betekent match 1 of meer keer)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/^[a-zA-Z0-9_-]+$/
 
Merijn Venema

Merijn Venema

12/02/2011 17:12:02
Quote Anchor link
Hmmmz ik ga het uitproberen dan! bedankt alvast :)
 



Overzicht Reageren