EM1*_*M10 1 c# visual-studio-2010
我想检查字符串是否为ABC123类型.
这就是我所做的.我该如何改进代码?
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");
}
}
Run Code Online (Sandbox Code Playgroud)
这个正则表达式应该有效:
^[a-zA-Z]{3}[a-zA-Z0-9]{3}$
// ^ ^ ^ ^
// | | | |
// | | | +-- Three times
// | | +--------- Letters or digits
// | +---------------- Three times
// +---------------------- Only letters
Run Code Online (Sandbox Code Playgroud)
如果IsMatch在这个正则表达式返回false,你可以做进一步的验证,看看有什么问题.
我该如何改进代码?
您可以创建一对正则表达式和错误消息的列表.每个正则表达式应该比前一个更具限制性.浏览列表,尝试将代码与正则表达式进行匹配.如果没有匹配项,请打印错误消息并退出循环.例如,您可以这样做:
^.{6}$ - "代码必须包含六个字符"| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |