信用卡输入格式Javascript

信用卡输入格式Javascript,javascript,Javascript,我有一个输入,用于使用luhn算法验证我的信用卡。Luhn函数完成了他的工作,它成功地验证了我的信用卡号 但我想将用户的输入类型格式化为6703 0000 0(最多17位)。我有一个脚本,但问题是当我执行Luhn函数时,所有信用卡都无效,因为它将信用卡读取为6703(空格)0000(空格)0000(空格)0000(空格)0。这是一个非常令人沮丧的问题。我找不到任何解决办法 我是否需要更改格式化数字的函数?或者我需要更改luhn函数的脚本吗 输入类型: <inp

我有一个输入,用于使用luhn算法验证我的信用卡。Luhn函数完成了他的工作,它成功地验证了我的信用卡号

但我想将用户的输入类型格式化为6703 0000 0(最多17位)。我有一个脚本,但问题是当我执行Luhn函数时,所有信用卡都无效,因为它将信用卡读取为6703(空格)0000(空格)0000(空格)0000(空格)0。这是一个非常令人沮丧的问题。我找不到任何解决办法

我是否需要更改格式化数字的函数?或者我需要更改luhn函数的脚本吗

输入类型:

               <input type="text" name="credit-card-number" id="credit-card" placeholder="Enter your credit card number here" autocorrect="off" oninput="myFunction()" autocapitalize="off" maxlength="42" size="42" ng-maxlength="17" required="required" />

请使用以下行删除包含信用卡号的字符串中的所有空格:

str = creditCardNumber.replace(/\s/g, '');

因此,在您将格式化的卡号传递给Luhn函数之前,只需从中去掉所有空格。就像你在格式化函数中所做的那样。单独的字段或类似的字段是否不起作用?所需验证格式为隐藏格式,显示格式为可见格式?无论哪种方式,显示和功能都应该分开。谢谢!简单清洁的解决方案:)
$(document).ready(function() {
        $('#credit-card-entry-form').submit(function(e) {
            e.preventDefault();
            var creditCardNumber = $('input[name="credit-card-number"]').val();

            is_luhn_valid(creditCardNumber);
        });
    });


    //validate checker
    var luhnChk = (function(arr) {
        return function(ccNum) {
            var
                len = ccNum.length,
                bit = 1,
                sum = 0,
                val;

            while (len) {
                val = parseInt(ccNum.charAt(--len), 10);
                sum += (bit ^= 1) ? arr[val] : val;
            }

            return sum && sum % 10 === 0;
        };
    }([0, 2, 4, 6, 8, 1, 3, 5, 7, 9]));

    function is_luhn_valid(cardNumber) {
        if (luhnChk(cardNumber) === true) {
            $('#err').hide();
            $('#suc').show();
            document.getElementById("credit-card").style.borderColor = '#00a160';
            alert("Credit card number is valid.");
        } else {
            $('#err').show();
            $('#suc').hide();
            document.getElementById("credit-card").style.borderColor = '#FF6C60';  
            alert("Credit card number is invalid.");

        }
    }
str = creditCardNumber.replace(/\s/g, '');