求一个很复杂的正则表达式写法,规则如下

  1. 一共17位只包含数字和大写字母
  2. 不包含英文字母“I”、“O”、“Q”
  3. 第13到17位为数字
  4. 任意连续5位不允许相同

以上条件同时满足

任意连续5位不允许相同是哪种情况?
如果是不允许连续5位的字符都相同:
^(?!.*(.)\1{4})[\dA-HJ-NPR-Z]{12}\d{5}$
如果是不允许相隔5位之内有相同的字符:
^(?!.*(.).{0,3}\1)[\dA-HJ-NPR-Z]{12}\d{5}$

最后那个比较难搞,前三个还行。

/[A-Z0-9^IOQ]{12}\d{5}/

任意5位不可相同的正则是
/(.)(\1){4}/

但这两个正则怎么柔一起我就不会了,写代码的话,分两步吧。