function emailCheck (emailStr) { /*user@domain format separate the username from the domain.*/ var emailPat=/^(.+)@(.+)$/; var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; /*unvalid chars in username or domainname*/ var validChars="\[^\\s" + specialChars + "\]"; /*E.g. "jiminy cricket"@disney.com*/ var quotedUser="(\"[^\"]*\")"; /*IP addresses joe@[123.124.233.4]*/ var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; /*atom (basically a series of non-special characters.)*/ var atom=validChars + '+'; /*a word is either an atom or quoted string.*/ var word="(" + atom + "|" + quotedUser + ")"; /*The following pattern describes the structure of the user*/ var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); /*normal symbolic domain, as opposed to ipDomainPat, shown above.*/ var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); var matchArray=emailStr.match(emailPat); if (matchArray==null) { return false; } var user=matchArray[1]; var domain=matchArray[2]; if (user.match(userPat)==null) { return false; } var IPArray=domain.match(ipDomainPat); if (IPArray!=null) { /* this is an IP address*/ for (var i=1;i<=4;i++) { if (IPArray[i]>255) { return false; } } return true; } var domainArray=domain.match(domainPat); if (domainArray==null) { return false; } var atomPat=new RegExp(atom,"g"); var domArr=domain.match(atomPat); var len=domArr.length; if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { return false; } if (len<2) { return false; } return true; } /********************************************************************************************************/ /* End of email check*/ /********************************************************************************************************/ function getValue(field){ thisField = field?field:thisField; switch(thisField.type){ case 'select-one':{ if(thisField.selectedIndex==-1) return ""; return thisField.options[thisField.selectedIndex].value; } case 'select-multiple':{ if(thisField.selectedIndex > -1){ return thisField.options[thisField.selectedIndex].value; }else{ return ""; } } case 'radio':{ field = eval("field.form."+field.name) if(!field.length){ if (field.checked) { return field.value; } }else{ for (var i = 0; i < field.length; i++){ if (field[i].checked) { return field[i].value; } } } return ""; } case 'checkbox':{ field = eval("field.form."+field.name) if(!field.length){ if (field.checked) { return field.value; } }else{ for (var i = 0; i < field.length; i++){ if (field[i].checked) { return field[i].value; } } } return ""; } default:{ return thisField.value; } } } /********************************************************************************************************/ function isBlank(field){ field = field?field:thisField; val = getValue(field) for(j=0;j= val}; return (min && max); } return false; } /********************************************************************************************************/ function isCreditcardNumber(thisVal){ var val = thisVal?thisVal:getValue(); } /********************************************************************************************************/ Array.prototype.getObj = function(instanceName,value){ for(var i=0;i if(!thisValidation.test(getValue(thisField))){ errorMsg += thisField.getAttribute('startErrorMessage')+" '"+thisField.getAttribute('description')+"' "+thisField.getAttribute('endErrorMessage')+"\n"; changeErrorMark(thisField,'Error'); } break; }else if(thisValidation.validation=='isBlank()' && blank){ // The validation is predefined and checks for blank fields eg: errorMsg += thisValidation.startErrorMessage+" '"+thisField.validation.description+"' "+thisValidation.endErrorMessage+"\n"; changeErrorMark(thisField,'Error'); break; }else if(!blank && !eval(thisValidation.validation) && thisValidation.validation!='isBlank()'){ // The validation is predefined and non-blank and non-RegExp eg: errorMsg += thisValidation.startErrorMessage+" '"+thisField.validation.description+"' "+thisValidation.endErrorMessage+"\n"; changeErrorMark(thisField,'Error'); break; } } } }catch(e){} tmpName=thisField.name } if(errorMsg==''){ return true; }else{ alert(errorMsg); return false; } } /********************************************************************************************************/;