禁用文本中的空格

如何在文本框条目中阻止空格?

我试过这个,但它不起作用:

[RegularExpression(@"/^\s/", ErrorMessage = "white space is not allowed in username")] public string UserName { get; set; } 

‘^’否定不应该允许文本中的空格,但它不允许我在字段中输入任何文本。 有帮助吗?

使用\S (否定\s =非空白字符):

 @"^\S+$" 

如果允许空字符串,请将+替换为*

 @"^\S*$" 

刚刚看到你说“你需要使用DataAnnotation”的评论,这里是没有正则表达式的方法

 public class WhiteSpaceCheckerAttribute : ValidationAttribute { public override bool IsValid(object value) { var strValue = value as string; return strValue != null && !strValue.Contains(" "); } } 

用法

 [WhiteSpaceChecker(ErrorMessage = "white space is not allowed in username")] public string UserName { get; set; } 

这不包括您可以轻松实现的客户端validation。 以下链接应该可以帮助您进行客户端自定义数据批注validation

^仅在字符类中用作“否定”,例如[^ ]表示除空格之外的任何字符。 当在[]之外使用时, ^表示“在字符串的开始处。所以你原来的RE说”字符串开头的空格“ – 几乎与你想要的完全相反。

我不熟悉C#RE的细节,但是从其他答案中,你想要的RE可能是^\S+$ :在字符串的开头和结尾之间有1个或更多非空格字符。

你可以在没有RegEx的情况下完成。 通过在文本框的KeyPress事件中添加此代码。

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = e.KeyChar == ' '; }