var cardNumber = '4761640026883566';
var cardNumberDashed = '4761-6400-1234-2345';
var cardNumberSpaced = '4761 6400 1234 3523';
var ensureOnlyNumbers = R.replace(/[^0-9]+/g, '');
var maskAllButLastFour = R.replace(/[0-9](?=([0-9]{4}))/g, '*');
var hashedCardNumber = R.compose(maskAllButLastFour, ensureOnlyNumbers);
document.body.innerHTML = hashedCardNumber(cardNumber) + '<br/>' +
hashedCardNumber(cardNumberDashed) + '<br/>' +
hashedCardNumber(cardNumberSpaced);
我的情况有点复杂,我有一个<textarea>
,我用它作为聊天窗口中的消息字段。我想掩盖所有的信用卡号码,这是在此聊天发送,但不是每一个数字,因为我需要从客户的会员号码是10-15位数字。<textarea id="postMessage"></textarea>
我遵循了这个jsfiddle中的代码:http://jsfiddle.net/7odv6kfk/但它只适用于有信用卡号码的输入字段。
我怎么能这么做呢?
谢谢你,谢谢!
3条答案
按热度按时间tyky79it1#
在这里,您可以找到有效的CC编号格式和与之匹配的正则表达式:http://www.regular-expressions.info/creditcard.html
问题是,旧的VISA卡有13位数字,美国运通卡有15位数字,一些JCB卡有15位数字。这与您的会员编号冲突。那么你需要支持16位的CC号码吗?
下面的代码显示如何将16位CC编号替换为空格:
输出量:
My CC number is **** (or ****, or ****). My membership number is 1234567890123.
8xiog9wr2#
http://jquerycreditcardvalidator.com/这个库可能会帮助你它可以只检测信用卡号码,避免其他号码
var result = $('#cardnumber').validateCreditCard({ accept:请输入'visa','mastercard']})
hc2pp10m3#