伊朗邮政编码验证

Iranian postal code validation

拜托,我需要使用 regex 验证伊朗邮政编码。 我为这种情况编写了这个正则表达式 \b([^02\n\D]){4}[^5](\d){5} 但它不适用于规则编号 5 和 7。 请帮我解决一下。

这是关于此正则表达式的一些规则:

  1. 都是数字

  2. 10 位数

  3. 不要在前 5 位使用 0

  4. 不要在邮政编码中使用 2

  5. 前4位数字不一样

  6. 第5位不能为5

  7. 所有数字都不相同

以下正则表达式满足您的条件:

\b(?!(\d){3})[13-9]{4}[1346-9][013-9]{5}\b

Click for Demo

解释:

  • \b - 单词边界
  • (?!(\d){3}) - 否定前瞻以确保前 4 位数字不相同。
  • [13-9]{4} - 匹配除 02
  • 之外的所有数字的 4 次出现
  • [1346-9] - 匹配不是 025
  • 的单个数字
  • [013-9]{5} - 匹配除 2
  • 之外的所有数字出现 5 次
  • \b - 单词边界