2017-03-21 24 views
0

當前使用下面的代碼可以很好地解析我的swipped數據。不過,我需要在單獨的字段中顯示2019年1月的月份和年份(如示例)。現在它做到了01 19.無論如何編輯此代碼?從信用卡swiper中讀取月份作爲全名而不是數字

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 /> 
+2

儘量縮小你的代碼位。 95%與你所問的問題完全無關。 – Santi

+0

會做。現在更新 – MHeredia

+0

現在更新的代碼 – MHeredia

回答

1

如何: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這個年頭做好準備。 ;)

+0

這個作品非常棒!謝謝 – MHeredia

0

您可以創建一個名爲monthNames的月份名稱的數組,然後將其命名爲monthNames [0]爲1月。下面

例子只是一個參考:

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

 
document.write("Arrays start from 0 so 0 = " + monthNames[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

希望它幫助

相關問題