正则表达式为数字标准

时间:2015-03-09 08:22:21

标签: regex

我可以获得以下条件的正则表达式吗?

仅限数字格式

  • 如果号码以07 开头,则 min length = 11,最大长度= 11。
  • 如果号码以010203040506开头, 0809 然后 min length = 10,最大长度= 11.

我试过这个,但似乎没有用。

^[0]{1}([0-6,8-9]{10,11}|[7]{11})$

1 个答案:

答案 0 :(得分:2)

我认为你需要这种正则表达式模式:

^(?:07\d{9}|0[1-689]\d{8,9})$

或同等的

^(?:07[0-9]{9}|0[1-689][0-9]{8,9})$

说明的: 07\d{9} = 07,正好是9位

0[1-689]\d{8,9} = 01any digit but 7以及之后的8位或9位数。

在你的正则表达式中,你指定[7]{11} = 7数字重复11次,[0-6,8-9]{10,11}表示“任何数字,但7或逗号10或11次”。所有这些都阻止了匹配您需要的所有数字。长度限制还应考虑已匹配数字的数量。