NET MVC模型中如何使多个正则表达式?

时间:2019-05-23 07:39:41

标签: regex asp.net-mvc

我有一个模型属性,我想要一个具有两个条件之一的正则表达式。

[RegularExpression(@"^\(?([5]{1})\)?[-. ]?([0-9]{2})[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"

[RegularExpression(@"^\(?([6]{1})\)?[-. ]?([0-9]{2})[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"

我如何像“或”条件那样组合这些?

1 个答案:

答案 0 :(得分:0)

您的正则表达式的第一个匹配数字不同。将56放入单个字符类中(并删除具有组的{1}冗余量词-您无需在此处捕获组来进行验证):

[RegularExpression(@"^\(?[65]\)?[-. ]?[0-9]{2}[-. ]?[0-9]{3}[-. ]?[0-9]{4}$")]

Regex graph

enter image description here

请参见regex demo

如果您想避免一开始使用括号不匹配的值,请将模式更改为

^(?:\([65]\)|[65])[-. ]?[0-9]{2}[-. ]?[0-9]{3}[-. ]?[0-9]{4}$

请参见this regex demo