/ / Expression rationnelle pour la validation de la connexion - c #, regex

Expression régulière pour la validation de la connexion - c #, regex

Je dois créer une expression régulière qui vérifie si la chaîne ne contient que des lettres ou des chiffres, le premier caractère doit être la lettre et la quantité minimale de caractères est 2 et 10 au maximum.

string shablon = "/^[a-zA-Z]{2,10}/g";
Regex myRegex = new Regex(shablon);
return myRegex.IsMatch(Login);

pour le login "Igal" son retour moi un faux

toute suggestion?

Réponses:

0 pour la réponse № 1

Ceci est testé pour c # et vous pouvez utiliser ce code:

  string shablon = @"^[a-zA-Z]{1}[a-zA-Z1-9]{1,9}";
Regex myRegex = new Regex(shablon);
var r= myRegex.IsMatch("Igal");

2 pour la réponse № 2

Vous écrivez votre regex avec un slash à l'avant, et un /g À l'arrière, c'est ne fait pas partie de la regex réelle, ce sont des choses que certaines bibliothèques utilisent pour représenter les expressions rationnelles. Mais la bibliothèque .NET utilise des indicateurs passés au Regex constructeur.

De plus, vous avez oublié un dollar ($) à la fin de la regex. Pour que vous puissiez utiliser:

csharp> string shablon = "^[a-zA-Z]{2,10}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true

si la chaîne ne contient que des lettres ou des chiffres, le premier caractère doit être la lettre et la quantité minimale de caractère est 2 et 10 au maximum.

Votre regex correspond seulement A-Za-z deux à dix fois. Donc, vous n'autorisez pas les chiffres. Vous pouvez cependant réécrire votre regex pour:

csharp> string shablon = "^[a-zA-Z][a-zA-Z0-9]{1,9}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true

La regex est composée de deux parties:

  1. [a-zA-Z] un personnage qui est une lettre; suivi par
  2. [a-zA-z0-9]{1,9} une à neuf lettres et / ou chiffres.