在JavaScript中屏蔽信用卡的最佳方法是什么?

Mav*_*ick 1 javascript credit-card node.js

在Node中,我需要在渲染视图层之前将信用卡变成这样的东西:************1234.

没有环和丑陋是否有一个实用工具或一个班轮为此?信用卡可能会看到以下方式之一:

1234567898765432
1234-5678-9876-5432
1234 5678 9876 5432
Run Code Online (Sandbox Code Playgroud)

Ali*_*guy 6

这是Ramda和一些RegEx 的一种方式:

var ensureOnlyNumbers  = R.replace(/[^0-9]+/g, '');
var maskAllButLastFour = R.replace(/[0-9](?=([0-9]{4}))/g, '*');
var hashedCardNumber   = R.compose(maskAllButLastFour, ensureOnlyNumbers);

hashedCardNumber('1234567898765432'); // ************5432
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/7odv6kfk/


小智 5

不需要正则表达式:

var cc='1234-5678-9012-3456';
var masked = '************'+cc.substr(-4); // ************3456
Run Code Online (Sandbox Code Playgroud)

如果最后四位数字是连续的,则适用于任何格式。