当前使用以下代码可以很好地解析我的刷卡数据。但是,我需要在单独的字段中显示月份和年份(作为示例),例如 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/