Kreditkarte input-Validierung mittels regular expression in javascript

Ich habe versucht, dieses zu erhalten getan, aber kein Erfolg. Ich bin mit den regulären Ausdruck zur Validierung der Kreditkartennummer eingegeben durch den Benutzer auf der Grundlage der Art der Kreditkarte, die durch die radio-Taste.
Aber ich keed mit der Warnung für alle wenn - Anweisung. Es sieht aus wie alle wenn sonst Aussagen getestet.

There is the HTML code fragment: 

<code>
<p><b>Payment Information:</b></p>
         <fieldset>
            <input type="radio" name="payment" value="Visa" id="visa" />Visa &nbsp;
            <input type="radio" name="payment" value="Master Card" />Master Card &nbsp;
            <input type="radio" name="payment" value="American Express" />American Express &nbsp;
            <input type="radio" name="payment" value="Discover" />Discover <br /><br />
            <label>Card Number:</label>
            <input type="text" name="cardNumber" id="cardNum" size="30" value="" onblur="ValidateCreditCardNumber()" />
</code>



And there is my javascript function :

<code>

function ValidateCreditCardNumber(){

    var ccNum = document.getElementById("cardNum").value;



    var visaRegEx = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;
    var mastercardRegEx = /^(?:5[1-5][0-9]{14})$/;
    var amexpRegEx = /^(?:3[47][0-9]{13})$/;
    var discovRegEx = /^(?:6(?:011|5[0-9][0-9])[0-9]{12})$/; 


    if (visaRegEx.test(ccNum) === false ){ //Visa validation
       alert("Please provide a valid Visa number!");   
        }  
      else  
        {  
         alert("Thank You!");  
        }  

    if (mastercardRegEx.test(ccNum) === false){ //MasterCard validation
        alert("Please provide a valid MasterCard number!");  
        }  
      else  
        {  
        alert("Thank You!");  
        } 

    if(amexpRegEx.test(ccNum) === false){ //Amex  validation
        alert("Not a valid America Express number!");  
        }  
      else  
        {   
        alert("Thank You!");  
        } 

    if (discovRegEx.test(ccNum) === false){ //Discover validation
        alert("Please provide a valid Discover number!"); 
        }  
      else  
        {  
        alert("Thank You!");  
        } 


    }
</code>


Any kind of help or advice would be really appreciated.
Gibt es keine mathematischen Regeln zum überprüfen von Kreditkartennummern? Siehe en.wikipedia.org/wiki/Luhn_algorithm
Ich glaube, es gibt, aber ich habe schon gesagt, zu "regulären Ausdruck verwenden" statt.
"Sagte" von wem? Sagen Sie Ihnen, es gibt bessere Möglichkeiten
Ein Regulärer Ausdruck wird lediglich überprüft, die format von einem eingegeben Wert - regex nicht berechnen kann eine CC-Nummer ist die Prüfziffer, zum Beispiel, was auch getan werden sollte. Aber ich beachten Sie, dass diese regexs verhindern, dass der Benutzer von der Eingabe der CC Nummer mit Leerzeichen oder Bindestriche ein (das verbessert die Lesbarkeit und usability). Ich denke, Sie sollten nur eine Mindestlänge check und lassen Sie Ihre back-End-payment-Prozessor, der die eigentliche Validierung+Verifizierung der zahlen.

InformationsquelleAutor Cyrille | 2016-11-23

Schreibe einen Kommentar