我对C#还是很陌生,
如果您愿意,我正在做一个“迷你用户名检查器”
到目前为止,用户名是2个数字,后跟一个名称,
示例
13Samuel
,也可以键入
13samuel
我想做的是检测前两个字符是否在0到99之间的数字,然后检测第三个字符是否是字母(a-z)小写字母或大写字母。
感谢您阅读,
塞缪尔
答案 0 :(得分:3)
肯定有一个正则表达式方法,但是有了字符串方法和LINQ,imo更加易于阅读:
string name = "13Samuel";
bool valid = name.Length > 2 && name.Remove(2).All(char.IsDigit) && char.IsLetter(name[2]);
或者您可能只允许a-z和A-Z而不允许所有字母:
// store this in a field so that it doesn't always need to be generated
char[] allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".SelectMany(c => new[]{c, char.ToLower(c)}).ToArray();
bool valid = name.Length > 2 && name.Remove(2).All(char.IsDigit) && allowed.Contains(name[2]);
答案 1 :(得分:1)
如果要检查前两个字母在 0到99 之间,然后是字符,则可以尝试以下操作
string name = "13Samuel";
if(name.Length > 2)
{
int number;
if(Int32.TryParse(name.Substring(0,2), out number)){
Console.WriteLine(number > 0 && number < 99 & Char.IsLetter(name[2]) ? "Success" : "Failed");
}
}
POC:。Net Fiddler
答案 2 :(得分:1)
I was editing a previous post but it was removed.
You can use regex to match strings to formats
For example :
Regex regex = new Regex(@"[\d]{2}[a-zA-Z]+");
Match match = regex.Match(username);
if (match.Success)
{
//it is valid
}
for this regex "[\d]{2}" means 2 digits and [a-zA-Z]+ is any number of letters from the alphabet.
You can check the documentation for more info on how to use regex in C#: https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.7.2
答案 3 :(得分:0)
以下方法返回您的字符串是否有效:
public static bool validateString(string stringToValidate) {
Regex rgx = new Regex(@"^\d{1,2}[a-zA-Z]+$");
return rgx.Match(stringToValidate).Success;
}
说明:
^-标记字符串的开头
\ d-匹配0-9之间的所有数字
{1,2}-数字可能出现1-2次
[a-zA-Z]-匹配a-z和A-Z中的所有文字
+-一次或多次匹配文字
您可以查看文档以获取有关C#中正则表达式的更多信息: https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.7.2
答案 4 :(得分:0)
去那里:
using System.Text.RegularExpressions;
static bool Answer(string stringToTest)
{
var classifier = @"^\d\d[a-zA-Z]";
Regex regex = new Regex(classifier);
return regex.Match(stringToTest).Success;
}
所以请记住使用正则表达式 您可以使用https://regex101.com/测试分类器