禁用文本中的空格
如何在文本框条目中阻止空格?
我试过这个,但它不起作用:
[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 == ' '; }