我正在尝试使用正则表达式格式化包含美国运通信用卡号的字符串。这是我用于Visa,MasterCard和Discover数字格式的内容,但它显然不适用于American Express:
var formatVisaMasterCardDiscover = function (
number) {
return number.split(/(?=(?:\d{4})+($))/).filter(function (
n) {
return (n != "");
}).join("-");
};
所以,我很好奇美国运通号码的正则表达式是什么。格式应为{4}-{6}-{5}
。我很感激任何帮助,因为我在搜索时找不到任何东西,除了关于如何验证它不是我想要的。我想格式化它。
答案 0 :(得分:2)
您可以使用:
var ccNum = '341256789012345';
var ccFmt = ccNum.replace(/\b(\d{4})(\d{6})(\d{5})\b/, '$1-$2-$3');
//=> 3412-567890-12345