Ich habe versucht, dies zu tun, aber keinen Erfolg. Ich verwende reguläre Ausdrücke, um die vom Benutzer eingegebene Kreditkartennummer anhand des Typs der Kreditkarte zu bestätigen, die über den Radioknopf ausgewählt wurde. Aber ich keed mit der Warnung für die alle wenn Aussage. Es sieht aus wie alle wenn sonst Anweisungen getestet werden.Kreditkarteneingabe Validierung mit regulären Ausdruck in Javascript
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 zur Validierung von Kreditkartennummern? Siehe https://en.wikipedia.org/wiki/Luhn_algorithm – Phil
@Phil Ich glaube es gibt, aber mir wurde gesagt, stattdessen regulären Ausdruck zu verwenden. – Cyrille
* "Told" * von wem? Sagen Sie ihnen, es gibt bessere Wege – Phil