正则表达式用X代替内部信用卡号码?

时间:2015-02-23 23:23:29

标签: javascript regex node.js sails.js

当卡号在15-19个字符之间变化时,是否可以使用正则表达式将卡号中的所有字符替换为X,但左外4位和右外4位除外?

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

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

(注意:对于那些有PCI兼容性担忧的人,我不存储信用卡号码而且它不是实时应用程序)

1 个答案:

答案 0 :(得分:4)

使用此模式

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

并替换w / 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