3

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

例子:

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

任何帮助,将不胜感激。

谢谢

4

3 回答 3

5

你只需要改变一点:

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

这表示:

  1. 获取 1 个或多个字母或数字以及一个可选空格并重复 1 次或多次;
  2. 以一个或多个字母或数字结尾

你也可以写:

"^(?:\w+\s?)+\w+$" 
于 2012-05-25T15:44:40.937 回答
0

不确定这是否是一项学术练习,但您可以从用户输入中删除前导和尾随空格吗?似乎这只是格式问题,而不是合法错误。但如果目标是更好地理解 RegEx,请忽略我的胡言乱语。

于 2012-05-25T15:37:14.217 回答
0

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

^\S.+\S$

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

这基本上相当于:

^[^ ].+[^ ]$

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

^\d.*[\w\.]$
于 2012-05-25T16:17:12.353 回答