C# 正则表达式数据批注不允许的开始/结束空格(类似于修剪)
我使用正则表达式数据注释来验证街道地址字段是否包含数字、字母和空格(介于两者之间)。如果street字段在用户输入的文本的开头或结尾包含空格,我希望数据注释抛出错误 示例:C# 正则表达式数据批注不允许的开始/结束空格(类似于修剪),c#,regex,asp.net-mvc,data-annotations,C#,Regex,Asp.net Mvc,Data Annotations,我使用正则表达式数据注释来验证街道地址字段是否包含数字、字母和空格(介于两者之间)。如果street字段在用户输入的文本的开头或结尾包含空格,我希望数据注释抛出错误 示例: // [123 Fake Street] = valid // [ 123 Fake Street] = not valid // [ 123 Fake Street ] = not valid // [123 Fake Street ] = not valid 这就是我到目前为止所做的: [Regula
// [123 Fake Street] = valid
// [ 123 Fake Street] = not valid
// [ 123 Fake Street ] = not valid
// [123 Fake Street ] = not valid
这就是我到目前为止所做的:
[RegularExpression(@"^[a-zA-Z 0-9]+$", ErrorMessage = "Street Address not valid.")]
任何帮助都将不胜感激
谢谢我不确定这是否是一个学术练习,但是你能从用户的输入中删去前导和尾随空格吗?似乎这只是一个格式问题,而不是一个合法的错误。但是,如果目的是更好地理解正则表达式,请不要理会我的漫谈。您只需要做一点更改:
"^(?:[a-zA-Z0-9]+\s?)+[a-zA-Z0-9]+$"
这意味着:
"^(?:\w+\s?)+\w+$"
如果您想要的只是缺少空白,那么您可以这样做:
^\S.+\S$
这确保它以数字开头,以字母、句点或数字结尾
这基本上相当于:
^[^ ].+[^ ]$
您也可以只查找以数字开头,以字符或句点结尾的内容(缩写)
如果正则表达式以数字/字母开头,中间有任何数字/字母/空格,最后以字母、数字或符号结尾(比如“.”,因为驱动器可以是Dr。)否。我使用数据注释来执行ajax表单验证。我不能只修剪输入的原因是我有另一个文本长度验证规则。因此,如果用户在文本前后都有空格,那么这些空格将被计算为文本长度,并因此抛出文本长度错误消息。这正是我想要的。谢谢:)
^\d.*[\w\.]$