Sto cercando di creare un regex
per convalidare i nomi utente, che deve corrispondere al seguente:Regex per abbinare un nome utente
- solo un carattere speciale
(._-)
permesso e non deve essere al Extremas della stringa - il primo carattere non può essere un numero
- Tutti gli altri caratteri consentiti sono lettere e numeri
- la lunghezza totale dovrebbe essere tra 3 e 20 caratteri
Questo è per un modello di convalida HTML5, quindi purtroppo deve essere una grande espressione regolare.
Finora questo è quello che ho:
^(?=(?![0-9])[A-Za-z0-9]+[._-]?[A-Za-z0-9]+).{3,20}
Ma il lookahead positivo può essere ripetuta più di una volta permette di essere più di un carattere speciale che non è quello che volevo. E non so come correggerlo.
Non ancora una risposta - ma è necessario rompere '.' in' [._-] '. – amit
Per qualcosa di così complicato, perché stai scegliendo un modello di convalida html? È possibile attivare un evento che gestisce la convalida anziché il modello. – Eclecticist
@amit [._-] è un singolo carattere nella lista "._-" letteralmente così il punto non è considerato alcun carattere, quindi penso di non aver bisogno di romperlo – Tofandel