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
<input type="radio" name="payment" value="Master Card" />Master Card
<input type="radio" name="payment" value="American Express" />American Express
<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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie 4 verschiedene
if
Blöcke in Ihrem Fall, und das trifft jeden einzelnen Datensatz, wenn die Vorherige einmal nicht.Ersetzen
if
mitif else
dieser Weg, wenn nur Gültigkeit für einen einzigen Anwendungsfall.Auch brauchst du nicht, lass die user wissen, um spezifisch über die Art der Karte, die er versucht, zu geben. Nur eine einzige Meldung geben Sie eine gültige Zahl sollte ausreichen.
Hier ist eine genauere Discover card regex: stackoverflow.com/a/13500918/2718874
InformationsquelleAutor Sushanth --
Ändern Sie Ihre Logik:
InformationsquelleAutor Dai
Dieser sollte den job tun,
Quelle: vee-überprüfen der repo -
InformationsquelleAutor Adam F