我正在尝试构建一个只接受以下格式的值的正则表达式验证器: -
string1 = xxx-xx-xxxx
或
string1 = xx-xxxxxxx
如何让正则表达式接受同一元素的两种值?
x仅表示数字。
所以总的位数= 9(0-9之间的任何东西)
值中的元素总数为11或10 ......具体取决于格式。
和破折号总数为2或1.
如何将其写入正则表达式?任何人都可以指出我正确的方向: - 文章/网站。
我对正则表达式有一些了解,我可以在这里验证电话号码和日期等。所以一点点帮助将会有很长的路要走。谢谢。
答案 0 :(得分:2)
答案 1 :(得分:1)
你可以试试下面的正则表达式,
^(?:\d{3}-\d{2}-|\d{2}-\d{3})\d{4}$
<强>解释强>
^ the beginning of the string
(?: group, but do not capture:
\d{3} digits (0-9) (3 times)
- '-'
\d{2} digits (0-9) (2 times)
- '-'
| OR
\d{2} digits (0-9) (2 times)
- '-'
\d{3} digits (0-9) (3 times)
) end of grouping
\d{4} digits (0-9) (4 times)
$ before an optional \n, and the end of the
string
答案 2 :(得分:-1)
\d{2}(?:-\d{3}|\d-\d{2}-)\d{4}
应该适用于元素。
\d{2}
(?:
- \d{3}
|
\d - \d{2} -
)
\d{4}