Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp:textbox上验证至少两个以上的单词_C#_Asp.net_Webforms_Validation - Fatal编程技术网

C# 在asp:textbox上验证至少两个以上的单词

C# 在asp:textbox上验证至少两个以上的单词,c#,asp.net,webforms,validation,C#,Asp.net,Webforms,Validation,您好,我想验证输入,因此计数单词的方法如下: public static string validateisMoreThanOneWord(string input, int numberWords) { try { int words = numberWords; for (int i = 0; i < input.Trim().Length; i++)

您好,我想验证输入,因此计数单词的方法如下:

public static string validateisMoreThanOneWord(string input, int numberWords)
        {
            try
            {
                int words = numberWords;
                for (int i = 0; i < input.Trim().Length; i++)
                {
                    if (input[i] == ' ')
                    {
                        words--;
                    }
                    if (words == 0)
                    {
                        return input.Substring(0, i);
                    }
                }
            }
            catch (Exception) { }
            return string.Empty;
        }
公共静态字符串验证超过一个字(字符串输入,整数单词)
{
尝试
{
整数字=数字字;
对于(int i=0;i
我将此方法放在此处,因此当验证后该方法返回空时,页面将不会回发(如AjaxToolKit上的RequireFeldValidator)

谢谢

将其作为一个整体来实施。请参阅以获取示例

如果您不想让它在没有回发的情况下工作,那么还应该用Javascript实现客户端版本的验证。您可以让客户端版本对C#实现进行AJAX调用,但这是一个相当简单的逻辑——因此我会选择用Javascript实现它,并为用户保存一个AJAX请求。

将其实现为。请参阅以获取示例


如果您不想让它在没有回发的情况下工作,那么还应该用Javascript实现客户端版本的验证。您可以让客户端版本对C#实现进行AJAX调用,但这是一个相当简单的逻辑——因此我会选择用Javascript实现它,并为用户保存一个AJAX请求。

首先,您可以简化很多:

public static bool validateIsMoreThanOneWord(string input, int numberWords)
{
    if (string.IsNullOrEmpty(input)) return false;

    return ( input.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Length >= numberWords);    
}
此版本还具有易于扩展的优点,可以包括其他空格,如制表符或回车符

下一步是,您无法阻止页面仅使用服务器端代码发回。相反,您需要使用CustomValidator并为其ClientValidationFunction编写一些javascript,如下所示:

var numberWords = 2;
function checkWordCount(source, args)
{         
   var words = args.Value.split(' ');
   var count = 0;
   for (int i = 0; i<words.length && count<numberWords;i++)
   {
      if (words[i].length > 0) count++;
   }
   args.IsValid = (count >= numberWords);
   return args.IsValid;
}
var numberWords=2;
函数checkWordCount(源,参数)
{         
var words=args.Value.split(“”);
var计数=0;
for(int i=0;i=numberWords);
返回args.IsValid;
}

首先,您可以将其简化很多:

public static bool validateIsMoreThanOneWord(string input, int numberWords)
{
    if (string.IsNullOrEmpty(input)) return false;

    return ( input.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Length >= numberWords);    
}
此版本还具有易于扩展的优点,可以包括其他空格,如制表符或回车符

下一步是,您无法阻止页面仅使用服务器端代码发回。相反,您需要使用CustomValidator并为其ClientValidationFunction编写一些javascript,如下所示:

var numberWords = 2;
function checkWordCount(source, args)
{         
   var words = args.Value.split(' ');
   var count = 0;
   for (int i = 0; i<words.length && count<numberWords;i++)
   {
      if (words[i].length > 0) count++;
   }
   args.IsValid = (count >= numberWords);
   return args.IsValid;
}
var numberWords=2;
函数checkWordCount(源,参数)
{         
var words=args.Value.split(“”);
var计数=0;
for(int i=0;i=numberWords);
返回args.IsValid;
}