我如何验证字符串,但不使用正则表达式。例如,如何验证这个:xxx / xxxx其中x是一个数字?感谢
答案 0 :(得分: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);
}
稍后用作
bool isValid = ValidateExpression("123/4567");
答案 1 :(得分:5)
您可以使用Char.IsDigit检查字符是否为数字。对于您的具体情况,您可以这样做:
public bool IsMyStringValid(string myString)
{
foreach(var c in myString)
if(!Char.IsDigit() && !c == '/') return false;
return true;
}
这实际上更具体针对您的情况(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;
}
答案 2 :(得分:2)
对于该特定格式,您可以使用:
bool valid =
value.Length == 8 &&
value.Take(3).All(Char.IsDigit) &&
value[3] == '/' &&
value.Skip(4).All(Char.IsDigit);
答案 3 :(得分:0)
试试这个:
public bool ValidateString(string str)
{
var strArr = str.Split('/');
return strArr[0].All(char.IsDigit) && strArr[1].All(char.IsDigit);
}
希望这有帮助;
答案 4 :(得分:0)
我会使用.All来检查这样的东西,所以无论字符串是什么 如果其中有非数字,则不会传递
public static bool IsMyStringValid(string strValidateString)
{
bool boolIsValid = false;
if (strValidateString.All(Char.IsDigit))
{
boolIsValid = true;
}
return boolIsValid;
}