文本框文本修剪允许1个空格asp net c#

文本框文本修剪允许1个空格asp net c#,c#,asp.net,trim,C#,Asp.net,Trim,我有一个文本框,我想允许1个空格。所以现在,trim方法不允许它,但是是否允许1个空格 C#: 使用以下简单代码: string t = txtSearchFor.Text; if (t.StartsWith(" ")) //starts is blank, end may be blank or not t = " " + t.Trim(); else if (t.EndsWith(" ")) //only end is blank t = t.TrimEnd() + "

我有一个文本框,我想允许1个空格。所以现在,trim方法不允许它,但是是否允许1个空格

C#:

使用以下简单代码:

string t = txtSearchFor.Text;

if (t.StartsWith(" ")) //starts is blank, end may be blank or not
    t = " " + t.Trim(); 
else if (t.EndsWith(" ")) //only end is blank
    t = t.TrimEnd() + " ";

txtSearchFor.Text = t;


//Outputs:
// "    abc def   " => " abc def"
// "abcd def      " => "abc def "
// "    abc def" => " abc def"

在哪一侧允许1个空格?左、右或其中任何一个?任何一个都不重要,只要它只有一个空格,而不是更多。只是不要使用
Text.Trim()
,检查它是否满足
OnTextChanged
中的要求,或者你有其他用途?它需要有空格吗?如果两端都有一个空格呢?空白是我应用程序上的通配符搜索,这就是为什么我需要允许它发生。他不知道如何修剪一个空格,而是修剪除一个以外的所有空格。它也没有考虑到两端可能都有空格。@ManfredRadlwimmer请查看我的更新,如果可能的话,请修改您的投票。它仍然是错误的(问题再次改变)。尽管如此,我还是要收回我的否决票,因为这不完全是你的错。一点建议:在任何人之前尝试回答这样一个(似乎很容易)低质量的问题是很有诱惑力的,但要求澄清和回答,以确保你首先知道所有细节。@ManfredRadlwimmer你是对的,因为一开始不太清楚他想做什么。。。但是现在这个代码有什么问题吗?他在评论Tim的回答时提供了一些额外的信息:“如果有超过1个空格,我希望用户不会被搜索命中,我希望它被删除。”。有几个其他的陈述散布在各地,但我真的不想试图解码到底是什么实际问题-我必须拼凑一个时间表。。。好吧,无论如何,已经有一个被接受的答案,所以OP可能已经离开了,永远不会回来。我建议我们也这样做。有了这段代码,我可以输入我想要的任意多的空格,我希望它最多有一个空格。@Malphai好吧,也许你可以提供几个例子或用例。不,出于某种原因,它仍然需要无限的空格。我有这段代码,在这个修剪之后只有一行,它会影响什么吗?“var searchFormat=string.Format(“[{0}]”,txtSearchFor.Text);“如果我只在没有任何其他内容的情况下放置10个空格,它仍然接受它。
string t = txtSearchFor.Text;

if (t.StartsWith(" ")) //starts is blank, end may be blank or not
    t = " " + t.Trim(); 
else if (t.EndsWith(" ")) //only end is blank
    t = t.TrimEnd() + " ";

txtSearchFor.Text = t;


//Outputs:
// "    abc def   " => " abc def"
// "abcd def      " => "abc def "
// "    abc def" => " abc def"
bool before = txtSearchFor.Text.StartsWith(" ");
bool after  = txtSearchFor.Text.EndsWith(" ");
string newText = before && after 
                 ? txtSearchFor.Text.Trim() + " " 
                 : before ? " " + txtSearchFor.Text.TrimStart() : after ? txtSearchFor.Text.TrimEnd() + " " : txtSearchFor.Text;

txtSearchFor.Text = newText;