javascript - 将信用卡刷卡者的月份读取为全名而不是数字

标签 javascript jquery

当前使用以下代码可以很好地解析我的刷卡数据。但是,我需要在单独的字段中显示月份和年份(作为示例),例如 2019 年 1 月。现在它的执行方式为 01 19。要编辑此代码吗?

function setFromCCS(ccs) {

    var index1 = ccs.indexOf("%B") + 2;
    var index2 = ccs.indexOf("^") + 1;
    var index3 = ccs.indexOf("^", index2 + 1) + 1;

    var cardNumber = ccs.substring( index1, index2 - 1);
    var expMonth = ccs.substr(index3, 2);
    var expYear = ccs.substr(index3 + 2, 2);
    var holderName = ccs.substring(index2, index3 - 1);

    $("#cn").val(cardNumber);
    $("#em").val(expMonth);
    $("#ey").val(expYear);
    $("#hn").val(holderName);
}
Card number: <input type="text" name="ccnum" id="cn"><br />
Card exp month: <input type="text" name="ccnum" id="em"><br />
Card exp year: <input type="text" name="ccnum" id="ey"><br />
Card holder name: <input type="text" name="ccnum" id="hn"><br />

最佳答案

这个怎么样:https://jsfiddle.net/m4fo5250/1/

function setFromCCS(ccs) {

    var index1 = ccs.indexOf("%B") + 2;
    var index2 = ccs.indexOf("^") + 1;
    var index3 = ccs.indexOf("^", index2 + 1) + 1;

    var cardNumber = ccs.substring( index1, index2 - 1);
    var expMonth = ccs.substr(index3, 2);
    var expYear = ccs.substr(index3 + 2, 2);
    var holderName = ccs.substring(index2, index3 - 1);

    var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

    $("#cn").val(cardNumber);
    $("#em").val(monthNames[+expMonth-1);
    $("#ey").val("20"+expYear);
    $("#hn").val(holderName);
}

我们可以将所有月份名称存储在一个数组中。然后,我们可以通过使用月份数字作为索引来从数组中获取月份名称 - 但请记住,数组以索引 0 开头,因此我们需要通过执行 expMonth-1 来进行补偿>.

请注意 - 该解决方案在 2099 之后将不起作用,因为我只是在该年份前面加上 20。 ;)

关于javascript - 将信用卡刷卡者的月份读取为全名而不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42931520/

相关文章:

javascript - 如何使用 AJAX 从 HTTP 服务器访问 HTTPS API

javascript - jQuery 如何在类处于事件状态时获取数据值?

javascript - 是否可以通过 _.includes 进行不区分大小写的搜索?

javascript - AJAX上传文件

javascript - 在函数中按字符串长度对数组进行排序

javascript - 如何判断链式异步脚本是否已经加载?

jquery - .val() 未返回正确的值

javascript - 如何测试 react Hook 方法?

javascript - 使用 Nicescroll 和 mousewheel.js 时避免水平触摸板上的抖动滚动

javascript - 单击按钮后使重叠的 div 动画到前面