包含美国运通卡号的JavaScript RegEx格式字符串

时间:2014-12-05 18:50:50

标签: javascript regex

我正在尝试使用正则表达式格式化包含美国运通信用卡号的字符串。这是我用于Visa,MasterCard和Discover数字格式的内容,但它显然不适用于American Express:

var formatVisaMasterCardDiscover = function (
    number) {
    return number.split(/(?=(?:\d{4})+($))/).filter(function (
        n) {
        return (n != "");
    }).join("-");
};

所以,我很好奇美国运通号码的正则表达式是什么。格式应为{4}-{6}-{5}。我很感激任何帮助,因为我在搜索时找不到任何东西,除了关于如何验证它不是我想要的。我想格式化它。

1 个答案:

答案 0 :(得分:2)

您可以使用:

var ccNum = '341256789012345';

var ccFmt = ccNum.replace(/\b(\d{4})(\d{6})(\d{5})\b/, '$1-$2-$3');
//=> 3412-567890-12345

RegEx Demo