Sta inoltre controllando se contiene caratteri diversi dall'alfabeto, a-z e A-Z, cifre da 0 a 9 e _.
Oppure si potrebbe dire, controllando che contenga solo caratteri alfanumerici e _.
Questo potrebbe essere riscritto per essere anche più semplice - preg_match restituisce un int, quindi non c'è motivo di usare il pattern 'return false, return true'.
function isUserID($username){ return (bool)preg_match('/^[a-z\d_]{2,20}$/i', $username); }
Farei la stessa cosa.
Inoltre, \w
significa la stessa cosa di quei caratteri. Lettere, cifre e sottolineatura. Quindi, anche se sarebbe meglio
function isUserID($username){ return (bool)preg_match('/^[\w]{2,20}$/i', $username); }
Se si desidera array_reverse (your_code_lines), dovrebbe essere più facile da leggere. L'ultima linea sarebbe la soluzione, ma le istruzioni saranno da sinistra a destra dall'alto verso il basso;). Ah, solo un piccolo scherzo, +1. –
Ottima risposta! Grazie! – zur4ik