Created
October 4, 2012 01:45
-
-
Save alvarouribe/3831021 to your computer and use it in GitHub Desktop.
Javascript: Validation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//if the ext is invalid, display an alert and return false. | |
//if is valid returns true. | |
function ValidateExtImg(inputObj) { | |
var _validFileExtensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png", ".pdf"]; | |
var oInput = inputObj; | |
if (oInput.type == "file") { | |
var sFileName = oInput.value; | |
if (sFileName.length > 0) { | |
var blnValid = false; | |
for (var j = 0; j < _validFileExtensions.length; j++) { | |
var sCurExtension = _validFileExtensions[j]; | |
if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) { | |
blnValid = true; | |
break; | |
} | |
} | |
if (!blnValid) { | |
alert("Sorry, " + sFileName + " is invalid, allowed extensions are: " + _validFileExtensions.join(", ")); | |
return false; | |
} | |
} | |
} | |
return true; | |
} | |
/************************************** | |
/* size file upload | |
/**************************************/ | |
//return file size in bytes | |
function getFileSize( inputFile ) { | |
var files = inputFile.files; | |
if( !files ) { | |
//for IE | |
try { | |
var fs = new ActiveXObject( 'Scripting.FileSystemObject' ); | |
var file = fs.getFile( inputFile.value ); | |
return file.size; | |
} catch( ex ) { | |
return -1; | |
} | |
} else if( files.length > 0 ) { | |
//for rest of the world | |
return files[ 0 ].size; | |
} | |
} | |
//**********************************************************DATE****************************************************** | |
/* DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/datevalidation.asp) | |
// Declaring valid date character, minimum year and maximum year*/ | |
// example: ValidateDate(inputField) | |
// returns true if is ok else display alerts depending failure and returns false. | |
var dtCh= "/"; | |
var minYear=1900; | |
var maxYear=2100; | |
function isInteger(s){ | |
var i; | |
for (i = 0; i < s.length; i++){ | |
// Check that current character is number. | |
var c = s.charAt(i); | |
if (((c < "0") || (c > "9"))) return false; | |
} | |
// All characters are numbers. | |
return true; | |
} | |
function stripCharsInBag(s, bag){ | |
var i; | |
var returnString = ""; | |
// Search through string's characters one by one. | |
// If character is not in bag, append to returnString. | |
for (i = 0; i < s.length; i++){ | |
var c = s.charAt(i); | |
if (bag.indexOf(c) == -1) returnString += c; | |
} | |
return returnString; | |
} | |
function daysInFebruary (year){ | |
// February has 29 days in any year evenly divisible by four, | |
// EXCEPT for centurial years which are not also divisible by 400. | |
return (((year % 4 === 0) && ( (!(year % 100 === 0)) || (year % 400 === 0))) ? 29 : 28 ); | |
} | |
function DaysArray(n) { | |
for (var i = 1; i <= n; i++) { | |
this[i] = 31; | |
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;} | |
if (i==2) {this[i] = 29;} | |
} | |
return this; | |
} | |
function isDate(dtStr){ | |
var daysInMonth = DaysArray(12); | |
var pos1=dtStr.indexOf(dtCh); | |
var pos2=dtStr.indexOf(dtCh,pos1+1); | |
var strDay=dtStr.substring(0,pos1); | |
var strMonth=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,10); | |
day=parseInt(strDay,10); | |
year=parseInt(strYr,10); | |
if (pos1==-1 || pos2==-1){ | |
alert("The date format should be : dd/mm/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 || year<minYear || year>maxYear){ | |
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; | |
} | |
function ValidateDate(date_id){ | |
var dt=document.getElementById(date_id.id); | |
if (isDate(dt.value)===false){ | |
dt.focus(); | |
return false; | |
} | |
return true; | |
} | |
//**********************************************************DATE*********************************************************************** | |
function echeck(str) { //Email check function | |
var at="@"; | |
var dot="."; | |
var lat=str.indexOf(at); | |
var lstr=str.length; | |
var ldot=str.indexOf(dot); | |
if (str.indexOf(at)==-1){ | |
return false; | |
} | |
if (str.indexOf(at)==-1 || str.indexOf(at)===0 || str.indexOf(at)==lstr){ | |
return false; | |
} | |
if (str.indexOf(dot)==-1 || str.indexOf(dot)===0 || str.indexOf(dot)==lstr){ | |
return false; | |
} | |
if (str.indexOf(at,(lat+1))!=-1){ | |
return false; | |
} | |
if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ | |
return false; | |
} | |
if (str.indexOf(dot,(lat+2))==-1){ | |
return false; | |
} | |
if (str.indexOf(" ")!=-1){ | |
return false; | |
} | |
} | |
function emailVal(emailId) | |
{ | |
if ((emailId.value===null)||(emailId.value==="")){ | |
alert("You must enter your email."); | |
email.focus(); | |
return false; | |
} | |
if (echeck(emailId.value)===false){ | |
alert("There seems to be a problem with the email entered."); | |
emailId.focus(); | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment