正则表达式数据注释不允许开始/结束空间(类似于修剪)

时间:2012-05-25 15:32:07

标签: c# regex asp.net-mvc data-annotations

我正在使用正则表达式数据注释来验证街道地址字段以包含数字,字母和空格(中间)。如果街道字段在用户输入的文本的开头或结尾包含空格,我希望数据注释引发错误。

示例:

// [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.")]

任何帮助将不胜感激。

由于

3 个答案:

答案 0 :(得分:5)

你只需改变一点:

"^(?:[a-zA-Z0-9]+\s?)+[a-zA-Z0-9]+$" 

这意味着:

  1. 获取1个或多个字母或数字以及可选空格并重复1次或更多次;
  2. 以一个或多个字母或数字结束
  3. 你也可以写:

    "^(?:\w+\s?)+\w+$" 
    

答案 1 :(得分:0)

不确定这是否是学术练习,但您是否可以从用户的输入中修剪前导和尾随空格?看起来它只是一个格式问题而不是一个合法的错误。但如果我们的目标是更好地了解RegEx,请忽略我的随意。

答案 2 :(得分:0)

如果您正在寻找的是缺少空白,那么您可以这样做:

^\S.+\S$

这可以确保它以数字开头,以字母,句号或数字结尾。

这基本上相当于:

^[^ ].+[^ ]$

您还可以查找以数字开头并以字符或句点结尾的内容(缩写)

^\d.*[\w\.]$