Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. Show all posts

Thursday, April 23, 2009

Credit Card Validation

Hi Friends,

Some times in e-commerce website, we need to validate the credit card information.
So that we can do at both places "Client" side using JavaScript and at "Server" side using C# or VB.Net.

Here i have created two methods one in JavaScript and one in C#.

Credit card validation requires use Regular Expressions, so try to get someoverview of Regular Expressions before reading this article..
Background

first Client side validation using JavaScript...
you have to put to controls one is drop down list (for different credit
cards names)and other is textbox (for card number).
just pass two parameter to this function one is id of dropdownlist and
textbox.

function ValidateCC(CCType, CCNum)
{
var cctype= document.getElementById(CCType);
var ccnum= document.getElementById(CCNum);
var validCCNum=false;
var validCC=false;
if(ccnum.value == "")
{
return false;
}
validCC= isValidCreditCard
(cctype.options[cctype.selectedIndex].value,ccnum.value);
if( validCC)
{
return true;
}
return false;
}


this function is calling another function isValidCreditCard
for number validation and it is here...

function isValidCreditCard(type, ccnum)
{
if (type == "Visa")
var re = /^[4]([0-9]{15}$|[0-9]{12}$)/;
else if (type == "MasterCard")
var re = /^[5][1-5][0-9]{14}$/;
else if (type == "Discover")
var re = /^6011-?d{4}-?d{4}-?d{4}$/;
else if (type == "Diners Club")
var re = /(^30[0-5][0-9]{11}$)|(^(36|38)[0-9]{12}$)/;
else if (type == "American Express")
var re = /^[34|37][0-9]{14}$/;
else if (type == "enRoute")
var re = /^(2014|2149)[0-9]{11}$/;
else if (type == "JCB")
var re = /(^3[0-9]{15}$)|(^(2131|1800)[0-9]{11}$)/;
if (!re.test(ccnum))
return false;
ccnum = ccnum.split("-").join("");
var checksum = 0;
for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2)
{
checksum += parseInt(ccnum.charAt(i-1));
}
for (var i=(ccnum.length % 2) + 1; i
var digit = parseInt(ccnum.charAt(i-1)) * 2;
if (digit < 10)
{ checksum += digit; }
else
{ checksum += (digit-9);
}
}
if ((checksum % 10) == 0)
{
return true;
}
else
return false;
}



now at the server side in asp.net with c#...


private bool checkCCValidation()
{
bool validCC = false;
if(txtCCNumber.Text == "")
{
return false;
}
validCC= isValidCreditCard(selectCCType.Value,txtCCNumber.Text.Trim());
if( validCC)
{
return true;
}
return false;
}


this method is also calling another method and it is here..

private bool isValidCreditCard(string type, string ccnum)
{
string regExp = "";
if (type == "Visa")
regExp = "^[4]([0-9]{15}$|[0-9]{12}$)";
else if (type == "MasterCard")
regExp = "^[5][1-5][0-9]{14}$";
else if (type == "Discover")
regExp = "^6011-?d{4}-?d{4}-?d{4}$";
else if (type == "Diners Club")
regExp = "(^30[0-5][0-9]{11}$)|(^(36|38)[0-9]{12}$)";
else if (type == "American Express")
regExp = "^[34|37][0-9]{14}$";
else if (type == "enRoute")
regExp = "^(2014|2149)[0-9]{11}$";
else if (type == "JCB")
regExp = "(^3[0-9]{15}$)|(^(2131|1800)[0-9]{11}$)";
if (!Regex.IsMatch(ccnum,regExp))
return false;
string[] tempNo = ccnum.Split('-');
ccnum = String.Join("", tempNo);
int checksum = 0;
for (int i = (2-(ccnum.Length % 2)); i <= ccnum.Length; i += 2)
{
checksum += Convert.ToInt32(ccnum[i-1].ToString());
}
int digit = 0;
for (int i = (ccnum.Length % 2) + 1; i < ccnum.Length; i += 2)
{
digit = 0;
digit = Convert.ToInt32(ccnum[i-1].ToString()) * 2;
if (digit < 10)
{ checksum += digit; }
else
{ checksum += (digit - 9); }
}
if ((checksum % 10) == 0)
return true;
else
return false;
}



so that is the end of simple way of validating credit card, without using
any third party controls..so enjoy... :)

Saturday, April 18, 2009

Date Format Validation in Javascript

Hi Guys,

Sometimes we want to validate the date which user has entered in text box, with some date formats. This things can be easily done in JavaScript. So here is the script which we can add in our JavaScript utility file for validating data format.



function isDate(dtStr){
var daysInMonth = DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,pos1+1)
var strMonth=dtStr.substring(0,pos1)
var strDay=dtStr.substring(pos1+1,pos2)
var strYear=dtStr.substring(pos2+1)
strYr=strYear
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
alert("The date format should be : mm/dd/yyyy")
return false
}
if (strMonth.length<1 || month<1 || month>12){
alert("Please enter a valid month")
return false
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Please enter a valid day")
return false
}
if (strYear.length != 4 || year==0 || yearmaxYear){
alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
return false
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
alert("Please enter a valid date")
return false
}
return true
}

Friday, April 17, 2009

Email Validation in Javascript

Hi Friends,

We often add some JavaScript to validate value of controls. And one common validation is Email validation, so here this script will validate the email address and you can also modify it according to your need, so here it is

function validateEmail(str) {

var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(at,(lat+1))!=-1){
alert("Invalid E-mail ID")
return false
}

if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(dot,(lat+2))==-1){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(" ")!=-1){
alert("Invalid E-mail ID")
return false
}

return true
}

Followers

My Google Reader