Filtrowanie w php

W jaki sposób sprawdzić funkcją ereg, czy ciąg znaków składa się WYŁĄCZNIE z małych wilekich liter, cyfr, spacji podkreślnika i myslnika:

a-z

A-Z

_

(spacja)

Prówałem tak:

ereg("[a-zA-Z0-9_]+$", $nlogin)

jeśli zamiast _ wstawię - wszystko działa poprawnie, czyli, że cąłość może składać sie z małych liter wielkich liter cyfr lub _ ale kiedy zrobie tak:

ereg("[a-zA-Z0-9_-]+$", $nlogin)

coś się chrzani… tzn. nie mogę wpisać - a jedynie _.

Jak to zrobić tak by działało?

$nlogin = strtolower($nlogin);

ereg("^([a-zA-Z0-9_-]+([.a-z0-9_-]+)*)$", $nlogin)

…sprawdź - nie wiem czy dobrze napisałem - nie chce mi się sprawdzać.

o chlopie cos Ty wymyslil w ogole… bez sensu :stuck_out_tongue:

<?php

$login = 'Balon';

if( ereg( '^[a-zA-Z\_\-\]+$', $login ) )

{

	echo 'GOOD';

}