multiline
textbox
小于5 chars
,我想显示消息。线。 这是我的代码。
string[] temp = Regex.Split(KeywordList.Text, "\r\n");
for (int i = 0; i < temp.Length; i++)
{
if (temp[i].Length <= 4) //check characters limit
{
Response.Write("Please enter min 5 characters per line");
}
else
{
Response.Write("success");
}
}
我的文本框包含分钟。几行中有5个字符,但上面的代码显示&#34;成功&#34; 。
任何人都可以帮我检测少于5个字符的行。
提前致谢,抱歉我的英语不好。
答案 0 :(得分:2)
我建议使用 Linq :Split
初始字符串(请不要像<{1}}那样放置魔术值,但是{{1} })并检查"\r\n"
项是否为Environment.NewLine
个字符或更少:
Any
在您当前的代码中4
是过冲( if (KeywordList
.Text
.Split(new string[] {Environment.NewLine}, StringSplitOptions.None)
.Any(item => item.Length <= 4))
Response.Write("Please enter min 5 characters per line");
else
Response.Write("success");
已经足够了),您似乎应该在Regex.Split
之后添加String.Split
行:
break
修改:如果你不确定分隔符(它们可以是Response.Write("Please enter min 5 characters per line");
- Unix, ...
if (temp[i].Length <= 4) //check characters limit
{
Response.Write("Please enter min 5 characters per line");
break; // <- we have an error, no need to check more lines
}
...
- Windows,\n
- Mac等)你可以在一次通话中尝试几个
\r\n
但是,我们必须消除空项:对于\n\r
,我们需要 if (KeywordList
.Text
.Split(new char[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries)
.Any(item => item.Length <= 4))
Response.Write("Please enter min 5 characters per line");
else
Response.Write("success");
,而不是"a\r\n\b"