Ik probeer een regex te maken die alleen letter, hoofdletters en de volgende karakters toelaat: . - _ .

Echter geeft hij altijd een false terug. Kan iemand mij helpen met mijn regex?


			if(!preg_match ('/^[A-Za-z0-9\-\.\_]$/', $_POST['username']))
			{
				$errors[] = "Gebruikersnaam mag alleen letters, ., - of _ bevatten.";
			}
Euh, heb je al eens een simpele tutorial over regex'en doorgekeken? Lijkt er nu niet echt op. Want je zegt nergens dat je meer dan een karakter wilt matchen. En ook heb je dat ie moet beginnen en eindigen met dat karakter. Dus als iemand één letter invoert is het oké. Verder klopt je range ook niet echt.
Ik zou er gewoon lekker het volgende van maken:
 /^([A-Za-z0-9]|-|_|\.)+$/

Of misschien nog wel mooier:
/^(\w|-|\.)+$/

Let ook even op de flags die je mee kunt geven. En stoei eens met regexr.
Nouw is het nog gelukt?

Reageren