如何从 asp.net 文本框的最开头删除空格

本文关键字:开头 删除 空格 文本 asp net | 更新日期: 2023-09-27 18:34:25

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

例如:"尼克卡特"<-----错误的格式,不应该发生,必须删除空格。

"尼克·卡特"<-----正确的格式,

我不知道如何从文本框中从头开始修剪白色的树液。

谢谢

如何从 asp.net 文本框的最开头删除空格

一个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>

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

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

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

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

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

(1(
对于用户界面/视图您可以使用字段验证器来完成此操作。您需要的是正则表达式字段验证器。您可以在此处阅读有关如何使用它的信息:

如何:使用正则表达式约束 ASP.NET 中的输入

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

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

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

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

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