REGEX (javascript) - Autoriser les caractères alphanumériques avec des caractères spéciaux non pas dans la première position
J'aimerais concevoir une expression regex qui permet de caractères alphanumériques, ainsi que d'autres personnages aussi longtemps qu'ils ne sont pas dans la première position. Exemples:
VALID: Test
VALID: Hello123
VALID: 456 Hi
VALID: 456-789
VALID: Hi-777
VALID: 333-Hi
VALID: Hello-There
VALID: What's Up
VALID: Hello#Goodbye
INVALID: -Hello
INVALID: &Goodbye
Voici mon point de départ, ce qui permet seulement alphanumérique:
/[a-zA-Z]+/
Vous devez vous connecter pour publier un commentaire.
Utilisation
^[A-Za-z0-9]
d'exiger une alphnum personnage dans la première position (immédiatement après^
, au début de la chaîne), suivi par tout autre vous avez besoin.+
après la première plage et un astérix sur la deuxième?/^[A-Za-z0-9]+[A-Za-z-9,+-_&#'"]*$/
+
après le premier caractère de classe signifie que vous ne devez un (pas plus, pas moins) alpha-num personnage au début de la chaîne. Mais alors le deuxième caractère de classe de permis supplémentaires alpha-num caractères, ainsi que d'autres caractères. La seconde pourrait être une+
ou*
, selon que plus de caractères sont requis ou non. À l'aide de*
aurait permis de chaînes d'un seul caractère (le premier)^[A-Za-z0-9][A-Za-z0-9,+-_&#'" ]+$
.+
+
devrait être*
, OMI+
sur*
? J'ai choisi d'être plus libéral et aller pour*
dans ce cas.Essayer cette expression régulière :
/^\w/
si vous avez seulement besoin de tester,/^\w.*$/
, si vous avez besoin de la totalité de la chaîne pour être adaptés ainsi.Si vous permettre à la chaîne vide, vous pouvez utiliser
/^(\w|$)/
, lire que la chaîne de caractères commence par un caractère de mot ou à la fin (qui est vide), ou/^(\w.*)?$/
, lire que la chaîne est un caractère de mot suivi par quoi que ce soit, une fois ou pas du tout.\w
contiendra également_
.