添加验证以防止字符串输入

本文关键字:字符串 输入 验证 添加 | 更新日期: 2023-09-27 18:01:19

我想阻止用户输入类型为stringTimeZoneId。目前,验证未捕获此问题。如何防止用户输入字符串值?

验证器在我的提供者:

目前,我的AddValidator阻止用户输入空值

  AddValidator(p => p.TimeZoneID != null && projectValidator.IsTimeZoneIdInvalid(p.TimeZoneID.Value), "TimeZoneId", "Invalid time zone ID");

我尝试添加以下内容,但它不起作用。它返回一个错误:不能应用操作符'!='到操作数类型'系统。可以为空":

    AddValidator(p => p.TimeZoneID != null && p.TimeZoneID != typeof(string) && projectValidator.IsTimeZoneIdInvalid(p.TimeZoneID.Value), "TimeZoneId", "Invalid time zone ID");

添加验证以防止字符串输入

你到底想要什么有点不清楚,所以这里有一些选项:

引用@Dan Tao从线程检查字符串输入的内容:

检查输入是否是System类型的对象。字符串,您可以简单地执行:

bool IsString(object value)
{
return value is string;
}

要检查字符串是否只包含字母,您可以这样做:

bool IsAllAlphabetic(string value)
{
foreach (char c in value)
{
    if (!char.IsLetter(c))
        return false;
}
return true;
}

如果你想合并这些,你可以这样做:

bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}

使用这些方法,你可以这样做:

AddValidator(p => p.TimeZoneID != null && !IsString(p.TimeZoneID) && projectValidator.IsTimeZoneIdInvalid(p.TimeZoneID.Value), "TimeZoneId", "Invalid time zone ID");