我有一个模型属性,我想要一个具有两个条件之一的正则表达式。
[RegularExpression(@"^\(?([5]{1})\)?[-. ]?([0-9]{2})[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"
[RegularExpression(@"^\(?([6]{1})\)?[-. ]?([0-9]{2})[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"
我如何像“或”条件那样组合这些?
答案 0 :(得分:0)
您的正则表达式的第一个匹配数字不同。将5
和6
放入单个字符类中(并删除具有组的{1}
冗余量词-您无需在此处捕获组来进行验证):
[RegularExpression(@"^\(?[65]\)?[-. ]?[0-9]{2}[-. ]?[0-9]{3}[-. ]?[0-9]{4}$")]
请参见regex demo。
如果您想避免一开始使用括号不匹配的值,请将模式更改为
^(?:\([65]\)|[65])[-. ]?[0-9]{2}[-. ]?[0-9]{3}[-. ]?[0-9]{4}$
请参见this regex demo。