簡體   English   中英

使用c#設置asp.net中每行的最小字符數限制

[英]Set minimum characters limit per line in asp.net using c#

  • 我想設置極限min。 每行5個字符
  • 如果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");
    }
}

我的文本框包含min。 幾行中有5個字符但代碼上面顯示“成功”

任何人都可以幫我檢測少於5個字符的行。

在此先感謝,抱歉我的英語不好。

我建議使用LinqSplit初始字符串(請不要像"\\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就足夠了),似乎你應該在Response.Write("Please enter min 5 characters per line");之后添加break Response.Write("Please enter min 5 characters per line"); 線:

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

編輯 :如果您不確定分隔符(它們可以是\\n - Unix, \\r\\n - Windows, \\n\\r - Mac等),您可以在一個調用中嘗試多個分隔符

   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"我們想要["a", "b"] ,而不是["a", "", "b"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM