正则表达式仅允许数字,逗号和短划线

时间:2017-08-02 02:25:36

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

我正在尝试使用Data Annotation正则表达式来匹配以下格式。

34

38-30

100,25-30

4-5,5,1-5

基本上,表达式应该只允许数字 - (破折号),(逗号)

我试过以下但是无法让它发挥作用。

[RegularExpression(@"(0-9 .&'-,]+)", ErrorMessage ="Lot numbers are invalid.")]

2 个答案:

答案 0 :(得分:4)

我认为您的用例是一个CSV列表的数字,或范围的数字(标识为数字后跟一个破折号后跟另一个数字)。我们可以使用以下正则表达式:

[0-9]+(?:-[0-9]+)?(,[0-9]+(?:-[0-9]+)?)*

此正则表达式匹配一个数字,后跟一个可选的短划线和另一个数字,该数量后跟逗号和另一个类似的术语,任意次。

在下面的演示中,我在正则表达式的两边添加了锚点。是否需要这样做取决于您打算如何使用该模式。

Demo

答案 1 :(得分:1)

这是^[0-9,-]*$。看看 demo