正则表达式用于登录验证

时间:2017-10-24 19:05:23

标签: c# regex

我需要创建一个正则表达式来检查字符串是否只包含字母或数字,第一个字符必须是字母,最小字符数是2和最大10。

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

登录" Igal"它给我一个假的

任何建议?

2 个答案:

答案 0 :(得分:2)

你用前面的斜杠和后面的/g 编写你的正则表达式,这是不是实际正则表达式的一部分,这些是一些库用来表示正则表达式的东西。但.NET库使用传递给Regex构造函数的标志。

此外,您在正则表达式结束时忘记了一美元($)。所以你可以使用:

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

如果字符串只包含字母或数字,则第一个字符必须是字母,最小字符数为2,最多10个。

你的正则表达式只匹配A-Za-z两到十次。所以你不允许数字。但是,您可以将正则表达式重写为:

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

正则表达式由两部分组成:

  1. [a-zA-Z]一个字母;
  2. [a-zA-z0-9]{1,9}一到九个字母和/或数字。

答案 1 :(得分:0)

这是针对c#测试的,您可以使用以下代码:

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