Il segno ^ ha DUE significati diversi a seconda di dove lo poni! La tua regexp /[^a-z0-9]$/i significa: "NON contiene lettere e/o numeri".
Se il metacarattere ^ viene posto per primo all'interno di parentesi quadre, la sua funzione è di NEGARE tutto il contenuto delle parentesi quadre.
Quindi la tua espressione deve diventare: /^[a-z0-9]$/i
Questa regexp significa: "Contiene solo lettere e/o numeri".![]()