141
rated 0 times
[
144]
[
3]
/ answers: 1 / hits: 32241
/ 8 Years ago, wed, november 23, 2016, 12:00:00
I've been trying to get this done but no success. I am using regular expression to validate the credit card number entered by user based on the type of credit card selected through the radio button.
But I keed having the alert for the all if statement. It looks like all the if else statements are tested.
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.
More From » regex