webForumDet fria alternativet

Vad felar med mitt reguljära uttryck?

PHP

1 svar · 219 visningar · startad av sabbacus

Medlem sedan juli 2002630 inlägg
Frågan#1

Tjaba. sitter här och knåpar på ett reguljärt uttryck men får det inte riktigt att fungera. Kaa någon hjälpa mig att få det att fungera?

// Första tecknet måste vara a-z eller A-Z eller _
// Resten av tecken får vara a-zA-Z0-9_
// Maximalt 20 tecken, minst tre
if(eregi("^([a-zA-Z_]+[a-zA-Z0-9_]){3,20}$", $username)){
	echo("Strängen var ok. ($username)<br>");
	return true;
} else {
	echo("Strängen var INTE ok ($username)<br>");
	return false;
}

Varför klagar eregi på
$username = "asdx";
?
Jag vet att felet ligger i
[a-zA-Z_]+
(för det går utmärkt om man tar bort det), men jag lyckas inte knäcka nöten...
/M

Medlem sedan feb. 200399 inlägg
#2

testa det här istället:

if(eregi("^([a-zA-Z_])+([a-zA-Z0-9_]){2,19}$", $username))
{
    echo("Strängen var ok. ($username)<br>");
    return true;
}
else
{
    echo("Strängen var INTE ok ($username)<br>");
    return false;
}
251 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)