如何在不使用C#中的正则表达式的情况下验证某些内容?

Isa*_*lla 1 c# validation

我如何验证字符串,但不使用正则表达式.例如,如何验证这个:xxx/xxxx其中x是一个数字?谢谢

Li0*_*liQ 6

像这样的东西:

bool ValidateExpression(string expression)
{
    string[] parts = expression.Split("/");

    if (
        parts.Length != 2
        || parts[0].Length != 3
        || parts[1].Length != 4
    ) return false;

    int parsed;
    return Int32.TryParse(parts[0], out parsed) && Int32.TryParse(parts[1], out parsed);    
}
Run Code Online (Sandbox Code Playgroud)

以后用作

bool isValid = ValidateExpression("123/4567");
Run Code Online (Sandbox Code Playgroud)


sco*_*ttm 5

您可以使用Char.IsDigit检查字符是否为数字.对于您的具体情况,您可以这样做:

public bool IsMyStringValid(string myString)
{
  foreach(var c in myString)
    if(!Char.IsDigit() && !c == '/') return false;

  return true;
}
Run Code Online (Sandbox Code Playgroud)

这实际上更具体针对您的情况(3位数,索引3处的一个'/',后跟4位数):

public bool IsMyStringValid(string myString)
{
  if(myString.Length != 8) return false;

  for(var i = 0; i <8, i++)
    if(!Char.IsDigit(myString[i]) || (i == 3 && myString[i] == '/') return false;

  return true;
}
Run Code Online (Sandbox Code Playgroud)