2010-02-02 3 views
7

J'essaie d'obtenir une expression régulière qui permet entre 6 - 15 caractères et peut être a-zA-Z0-9 et les symboles au-dessus des numéros 1 - sur un clavier.Expression régulière pour correspondre à 6-15 caractères alphanumériques plus les symboles au-dessus de 1-8 touches au clavier

Voici ce que j'ai, mais cela ne fonctionne pas.

'/^[a-zA-Z0-9-_][\!\@\#\$\%\^&\*]{5,16}+$/' 
+1

6-16 caractères seraient {} 6,16, pas {} 5,16. Vous ne voulez probablement pas le '+' non plus ... – macabail

Répondre

15

vous avez deux ensembles différents entre crochets. Fondamentalement, l'expression dit "1 de a-zA-Z0-9-_" suivi de 5-16 de caractères spéciaux. Combinez-les dans le même ensemble de supports et vous êtes tous bons.

Quelque chose comme ce qui suit:

'/^[a-zA-Z0-9-_\!\@\#\$\%\^&\*]{5,16}+$/' 
+0

Fonctionne bien. Merci d'expliquer non seulement la bonne réponse, mais ce qui n'allait pas avec ma réponse. – Catfish

+0

Pas de problème. Les expressions régulières peuvent devenir incontrôlables, alors j'essaie toujours de les lire et de les traduire en langage clair pour vérifier mon travail. – Rich

0

Essayez ceci:

^[\[email protected]#$%^&*]{6,15}$ 

Comme \w signifie [a-zA-Z_0-9]

+0

Vous devez échapper la plupart des caractères spéciaux. – macabail

+0

correspond correctement "! @ # $%^& * 0az-9_' –

0
/^[\w\!\@\#\$\%\^&\]{6,15}*$/ 

C'est ce qu'il serait en Perl.

Questions connexes