用 X 替换内部信用卡号的正则表达式?

Regular expression to replace inner credit card numbers with X's?

当卡号的长度在 15 至19 个字符?

我一直在搜索,但找不到卡长度可变的解决方案。

我正在构建一个 sails.js 应用程序。

(注意:对于那些担心 PCI 合规性的人,我没有存储信用卡号,也不是实时应用程序)

使用这个模式

(?<=\d{4})\d(?=\d{4})

并替换为 X
Demo

(?<=            # Look-Behind
  \d            # <digit 0-9>
  {4}           # (repeated {4} times)
)               # End of Look-Behind
\d              # <digit 0-9>
(?=             # Look-Ahead
  \d            # <digit 0-9>
  {4}           # (repeated {4} times)
)               # End of Look-Ahead  

如果您的引擎不支持后视,请改用此模式

^(\d{4})\d(?=\d{4})|\d(?=\d{4})  

注意:仅适用于 9 位以上的数字 Demo