2017-03-21 3 views
0

Derzeit verwenden Sie den folgenden Code, der gut funktioniert, um meine Daten zu analysieren. Jedoch muss ich den Monat und das Jahr (als Beispiel) als Januar 2019 in getrennten Feldern anzeigen. Gerade jetzt macht es als 01 19. Wie auch immer, diesen Code zu bearbeiten?Monat von Kreditkartenwechsler als Voller Name anstelle der Nummer lesen

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

Versuchen Sie Ihren Code ein wenig Eingrenzung. 95% davon sind völlig unabhängig von der Frage, die Sie stellen. – Santi

+0

Wird tun. Jetzt aktualisieren – MHeredia

+0

Aktualisierter Code jetzt – MHeredia

Antwort

1

Wie wäre es damit: 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); 
} 

Wir speichern können alle Monatsnamen in einem Array. Dann können wir den Monatsnamen aus dem Array abrufen, indem wir die Monatszahl als Index verwenden. Denken Sie jedoch daran, dass Arrays mit einem Index von 0 beginnen, also müssen wir das durch expMonth-1 kompensieren.

Und ein Kopf - diese Lösung wird nicht nach dem Jahr 2099 arbeiten, weil ich einfach das Jahr mit 20 vorangestellt bin. ;)

+0

Das funktioniert super! Vielen Dank – MHeredia

0

Sie können ein Array mit den Monatsnamen monatsNames erstellen und es dann für Januar zu "monatNames [0]" aufrufen.

Beispiel unten ist nur eine Referenz:

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>

hoffe, es half

Verwandte Themen