我正在为我的text
字符串添加验证。它允许string
和integer
值,这是正确的,但我希望我的text
长度超过4个字符。我已添加text.Length > 4
,但在输入 2 字符串时,这不会添加任何验证。有什么建议吗?
public bool IsStringInvalid(string text)
{
if (String.IsNullOrEmpty(text))
{
if (text != null && !Regex.IsMatch(text, textCodeFormat) && text.Length > 4)
{
return true;
}
}
return false;
}
答案 0 :(得分:3)
您的方法称为IsStringLengthInvalid
,这意味着它应该对无效字符串返回true。现在,您似乎只是尝试为有效字符串返回true。
这样的事情应该有效:
public bool IsStringInvalid(string text)
{
return string.IsNullOrEmpty(text) ||
text.Length <= 4 ||
!Regex.IsMatch(text, textCodeFormat);
}
答案 1 :(得分:1)
您正在检查嵌套在逻辑错误的null条件中的非null条件。你应该这样做。
public bool IsStringInvalid(string text)
{
if (text != null && text.Length > 4 && !Regex.IsMatch(text, textCodeFormat))
{
return true;
}
return false;
}
答案 2 :(得分:0)
如果声明嵌套在你的另一个if中,你有长度验证。如果文本有任何数据,如果永远不会到达嵌套,因为它将失败,因为IsNullOrEmpty将返回false。
我会做像
这样的事情if (String.IsNullOrEmpty(text) || !Regex.IsMatch(text, textCodeFormat) || text.Length < 4)
{
return true;
}
return false;