gpt4 book ai didi

C# 检查字符串是否为 ABC123 类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:37 24 4
gpt4 key购买 nike

我想检查一个字符串是否是 ABC123 类型。

  • 字符串长度必须为6。
  • 只允许使用字母和数字。
  • 字符串的前三个值必须是字母。

这就是我所做的。我怎样才能改进代码?

    private void ValidationOfFlightCode(string flightCode)
{
if (flightCode.Length == 6)
{
bool state = Regex.IsMatch(flightCode, @"^[a-zA-Z0-9]+$");
if (state)
{
bool isLetter = false;
for (int i = 0; i < 3; i++)
{
isLetter = Char.IsLetter(flightCode, i);
if (!isLetter)
break;
}
if (isLetter)
{
MessageBox.Show(flightCode + ": " + state);
}
else
{
MessageBox.Show("The letters must be before the numbers");
}
}
else
{
MessageBox.Show("Only letters and numbers are allowed!");
}
}
else
{
MessageBox.Show("Flight Code must be 6 characters long");
}
}

最佳答案

这个正则表达式应该可以工作:

^[a-zA-Z]{3}[a-zA-Z0-9]{3}$
// ^ ^ ^ ^
// | | | |
// | | | +-- Three times
// | | +--------- Letters or digits
// | +---------------- Three times
// +---------------------- Only letters

如果此正则表达式上的 IsMatch 返回 false,您可以进行进一步验证以查看问题所在。

How can I improve the code?

您可以创建正则表达式和错误消息对的列表。每个正则表达式都应该比前一个更严格。浏览列表,并尝试将代码与正则表达式进行匹配。如果没有 匹配项,则打印错误消息并退出循环。例如,您可以这样做:

  • ^.{6}$ - “代码必须包含六个字符”
  • '^[a-zA-Z0-9]{6}$' - “字符必须是字母数字”
  • '^[[a-zA-Z]{3}.{3}$' - “前三个字符必须是字母”

关于C# 检查字符串是否为 ABC123 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com