【问题标题】:How to remove white space from very begining of the textbox in asp.net如何从asp.net中文本框的开头删除空格
【发布时间】:2013-10-14 21:44:52
【问题描述】:

我在 asp.net 页面上有一个文本框,我希望没有人不能在文本框的开头插入空格。

例子:"Nick Carter"

“尼克卡特”

我不知道如何从文本框开始修剪那个白色的空间。

谢谢

【问题讨论】:

  • 我认为如果有人放一个空格是可以的,重要的是你需要在他提交表单时删除它,使用:textbox1.Trim();
  • 这个方法不行,因为我不知道用户会插入多少空白。
  • String.Trim 从当前 String 对象中删除 所有 个前导和尾随空白字符。
  • 如果你想从字符串的其余部分删除双空格,string = string.replace(/\s{2,}/g, ' ');
  • textbox1.Text.Trim();解决了我的问题。

标签: c# asp.net css space


【解决方案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>

请注意,这将部分用于粘贴。它不会在粘贴时删除空格,而是在粘贴后的按键上删除。

【讨论】:

    【解决方案2】:

    使用以下正则表达式删除空格。

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

    【讨论】:

      【解决方案3】:

      由于 Asp.Net 是根据 MVC 模式设计的,因此需要考虑 3 个兴趣点。

      1. 您可能只想在 UI 中限制它。 (或查看)
      2. 您可能希望在代码隐藏中限制它。 (或控制器)
      3. 您可能希望将其限制在处理数据的业务逻辑中(或多或少的模型)

      (1)
      对于 UI / 视图 您可以使用字段验证器来完成此操作。 您需要的是 Regex 字段验证器。 您可以在此处阅读有关如何使用它的信息:

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

      (2)
      因此,虽然此解决方案将解决 UI 方面的问题.. 您可能想确保您的服务器端控制器也限制了这一点。 为此,您可以在 ASPX 代码隐藏中设置对 textbox1.Trim() 的调用或使用正则表达式命令。

      (3)
      接下来,您的业务逻辑..如果您创建了 POCO,您可能希望在接收输入的属性中放置一个验证代码,或者如果您更喜欢 POCO 的多功能性,您可以转到您的业务逻辑方法并在之前进行检查您即将处理来自输入的信息。

      如果我是你,我会实现字段验证器并在即将处理信息的 API 方法中进行第二次检查,我宁愿不更改背后的 ASPX 代码或模型道具。
      但这当然更多是风格或观点的问题。

      【讨论】:

        【解决方案4】:
        private string RemoveSpaces(string text)
                {
                    var reg = new System.Text.RegularExpressions.Regex(" +");
                    return reg.Replace(text, " ").Trim();            
                }
        

        这适用于所有双空格,以及开始和结束空格

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-30
          • 1970-01-01
          • 1970-01-01
          • 2021-01-23
          • 2011-04-27
          • 2021-02-12
          • 2015-10-23
          • 2023-03-19
          相关资源
          最近更新 更多