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;
}