2013-10-08 74 views
0

我在asp.net頁面上有一個文本框,我希望沒有人不能在文本框中插入空格。如何從asp.net中的文本框開頭刪除空格

例如:「尼克卡特」< -----錯誤格式,不應該發生,必須刪除空格。

「尼克·卡特」 < -----正確的格式,

我不知道如何從文本框中非常begining修剪白sapce。

謝謝

+1

我認爲這是確定的,如果有人把一個空白,重要的是,你需要的時候,他提交表單刪除它,做它與:'textbox1.Trim();' –

+0

此方法不起作用,因爲我不知道用戶將插入多少空白區域。 –

+1

String.Trim從當前String對象中刪除**所有**前導和尾隨空格字符。 – Zerkey

回答

1

JavaScript解決方案。

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script> 
     function trimTextBox(sender) { 
      // keyCode == 32 is space(' '). 
      if ((sender.value.length == 0 || sender.selectionStart == 0) && (window.event.keyCode == 32)){ 
       return false; 
      } 
      else if (sender.value.charCodeAt(0) == 32) { 
       sender.value = sender.value.substring(1); 
      } 
      return true; 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="txt1" runat="server" onkeypress="return trimTextBox(this)"></asp:TextBox> 
    </div> 
    </form> 
</body> 
</html> 

請注意,這將部分適用於粘貼。它不會刪除粘貼時的空白,而是粘貼後的按鍵。

+0

是的,我工作,但只適用於按鍵。反正謝謝。 –

0

使用下面的正則表達式來刪除空格。

string Result=" Nick Carter"; 
Result = Regex.Replace(Result, "\\s+", " "); 
0

由於Asp.Net是根據MVC模式設計的,因此有3個興趣點需要考慮。

  1. 您可能只想在用戶界面中限制它。 (或查看)
  2. 您可能希望將其限制在代碼隱藏中。
  3. 您可能需要將其限制在處理數據的業務邏輯(模型或多或少)(或控制器)

(1)
對於UI /視圖 您可以使用字段驗證完成那。 你需要的是Regex字段驗證器。 你可以閱讀關於如何在這裏使用它:

How To: Use Regular Expressions to Constrain Input in ASP.NET

(2)
所以,儘管這個解決方案將在UI方面解決問題.. 你可能想確保你的服務器端控制器也限制這一點。 爲此,您可以在ASPX代碼中調用textbox1.Trim()或使用regex命令。

(3)
接下來,你的業務邏輯。如果你創建了POCO的,你可能想要把一個驗證碼,其中接收輸入的財產,或者如果你喜歡你的POCO的多功能,你可以去你的業務邏輯方法並在即將處理輸入信息之前進行檢查。

如果我是你,我會實現了對現場驗證,並做是要處理的信息的API方法的第2次檢查,我寧願不改變後面的ASPX代碼或模型道具。
但這當然更多的是風格或意見的問題。

0
private string RemoveSpaces(string text) 
     { 
      var reg = new System.Text.RegularExpressions.Regex(" +"); 
      return reg.Replace(text, " ").Trim();    
     } 

這是所有雙空間,並開始和結束空間