Jag skulle behöva en funktion/regexp som returnerar true om den kollar igenom en sträng och inte hittar någonting annat än siffrorna 1 2 3 4 5, och mellanslag.
Nedanstående skulle alltså returnera false eftersom "skcdms wlk" inte passar in.
pattern = "1-5 ";
content = "5 2 3 skcdms wlk"
if ($pattern, $content)) {
echo "japp, inga otillåtna tecken här inte!";
return true;
} else {
echo "nej det funkade inte";
return false;
}
Det känns onödigt att använda regexp för en sån enkel grej. Regexp är ju mer om man leter efter ett mönster.
Förvisso går det säkerligen snabbare att använda din metod, men koden blir betydligt mer svårläst. Man kan inte räkna med att programmerare kan ASCII-tabellen utantill :)
Ja, tyvärr blir den lite mer svårläst i Php. Egentligen ska den ju se ut så här:
int Check(char *s)
{
int i;
for (i = 0; i < strlen(s); i++)
{
if (s[i] != ' ' && (s[i] < '1' || s[i] > '5'))
return 0;
}
return 1;
}
Men viktiga delar av ASCII-tabellen ska man kunna utantill. Annars är man ingen programmare. Dit hör mellanslag, tab, escape, cr, lf samt siffrorna och bokstäverna. Det är det minsta man kan begära. Och det ska man kunna åtminstone i hex men helst binärt också. Eller tja, kan man det i hex kan man det ju automatiskt binärt också, för det är ju grundläggande att kunna göra om hex till binärt och tvärtom i huvudet.