Expression régulière pour accepter les caractères alphanumériques (de 6 à 10 caractères) .NET, C#
Je suis la construction d'un formulaire d'enregistrement à l'aide de C# avec .NET.
J'ai une exigence de validation de l'utilisateur mot de passe saisi dans les champs.
Demande de Validation est comme ci-dessous.
- Il doit être composé de caractères alphanumériques (a-z , A-Z , 0-9)
- Elle doit accepter de 6 à 10 caractères (minimum 6 caractères, maximum 10 caractères)
- Avec au moins 1 alphabet et nombre (exemple:
stack1over
)
Je suis en utilisant une expression régulière comme ci-dessous.
^([a-zA-Z0-9]{6,10})$
Il répond à mes 2 premières conditions.
Il ne parvient pas quand je rentre seulement des caractères ou des chiffres.
Pourquoi, pourquoi, pourquoi vous mettez-vous d'une longueur maximale autorisée pour un mot de passe?
Je vais prendre Damien commentaire un peu plus loin: Pourquoi êtes-vous (ou plutôt, les gens à vous donner les exigences) en limitant le mot de passe alphanumérique de caractères? Un bon mot de passe a non-alphanumériques. - Ils activement voulez les gens à utiliser les mauvais mots de passe? Essayez d'éduquer les gens à vous donner à ces exigences.
mais notre exigence est comme ça seulement
Peut-être qu'ils font la connexion unique à une multitude de systèmes et de l'armature permet seulement de dix caractères pour le mot de passe. Qui sait? Qui s'en soucie? Il suffit de répondre au nom de dieu question déjà 🙂
Je vais prendre Damien commentaire un peu plus loin: Pourquoi êtes-vous (ou plutôt, les gens à vous donner les exigences) en limitant le mot de passe alphanumérique de caractères? Un bon mot de passe a non-alphanumériques. - Ils activement voulez les gens à utiliser les mauvais mots de passe? Essayez d'éduquer les gens à vous donner à ces exigences.
mais notre exigence est comme ça seulement
Peut-être qu'ils font la connexion unique à une multitude de systèmes et de l'armature permet seulement de dix caractères pour le mot de passe. Qui sait? Qui s'en soucie? Il suffit de répondre au nom de dieu question déjà 🙂
OriginalL'auteur Madhu | 2010-02-03
Vous devez vous connecter pour publier un commentaire.
Passer à travers de multiples regexes si vous le pouvez. Il va être beaucoup plus propres que ceux de " look-ahead monstruosités 🙂
Bien que certains pourraient considérer qu'il intelligent, il n'est pas nécessaire de faire tout avec une seule regex (ou même avec toutes les regex, parfois, - assister les personnes qui veulent une expression régulière pour détecter les numéros entre 75 et 4093).
Préférez-vous voir quelques belles nettoyer le code comme:
ou quelque chose comme:
- Je savoir laquelle j'avais préfèrent conserver 🙂
Pas de. Je veux dire quelque chose comme: if (!str.match(re1)) return false; if (!str.match(re2)) return false; return str.match(re3); - trois invocations avec trois regexes.
+1 pour la bonne explication
OriginalL'auteur paxdiablo
Utiliser positive anticipation
La syntaxe pour regarder autour de:
(?=REGEX)
Anticipation positif(?!REGEX)
Anticipation négatif(?<=REGEX)
Positif lookbehind(?<!REGEX)
Négatif lookbehindessayé ici avec pas de problèmes;
Wow, je n'ai pas touché à ce sujet. Omi, il fonctionne comme prévu, au moins en Python)
essayez quelques-texte commençant par des nombres. Si vous utilisez les lettres de l'alphabet au début du mot, elle fonctionne comme prévu. Mais quand vous commencez le même avec des nombres, il ne marche pas.(Je l'utilise .net avec c#) Merci pour votre patience.
Je l'ai testé avec expresso et il fonctionne très bien pour les chaînes de caractères commençant par des nombres. (n'ont pas .net environnement de développement avec moi). Post un exemple qui échoue avec elle et nous pourrions être en mesure de vous dire quel est le problème.
OriginalL'auteur Amarghosh
http://www.regular-expressions.info/refadv.html
http://www.regular-expressions.info/lookaround.html
OriginalL'auteur Brock Hensley