我在asp.net页面上有一个文本框,我希望没有人不能在文本框的开头插入空格。
示例:“Nick Carter”< -----格式错误,不应该发生,必须删除空格。
“Nick Carter”< -----格式正确,
我不知道如何从文本框开始修剪那个白色的sapce。
由于
答案 0 :(得分: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>
请注意,这部分适用于粘贴。它不会在粘贴时删除空格,而是在粘贴后的按键上删除。
答案 1 :(得分:0)
使用以下正则表达式删除空格。
string Result=" Nick Carter";
Result = Regex.Replace(Result, "\\s+", " ");
答案 2 :(得分:0)
由于Asp.Net是根据MVC模式设计的,因此需要考虑3个方面。
(1)
对于UI / View
您可以使用Field Validator来完成此任务。
您需要的是Regex字段验证器。
你可以在这里阅读有关如何使用它的信息:
How To: Use Regular Expressions to Constrain Input in ASP.NET
(2)
因此,虽然这个解决方案将解决UI方面的问题..
您可能希望确保服务器端控制器也限制此操作。
为此,您可以在ASPX代码后面设置对textbox1.Trim()的调用或使用正则表达式命令。
(3)
接下来,您的业务逻辑..如果您创建了POCO,您可能希望在接收输入的属性中放置验证代码,或者如果您更喜欢POCO的多功能,您可以转到业务逻辑方法并在此之前进行检查你将要处理来自输入的信息。
如果我是你,我会实现字段验证器并对即将处理信息的API方法进行第二次检查,我宁愿不改变后面的ASPX代码或模型道具。
但这当然更多的是风格或观点。
答案 3 :(得分:0)
private string RemoveSpaces(string text)
{
var reg = new System.Text.RegularExpressions.Regex(" +");
return reg.Replace(text, " ").Trim();
}
这适用于所有双重空格,以及起始和结束空间