* Call all validation methods LOCAL lnLocation * As this is a global object, we need to reset all properties at call time This.cValidationMessage='' * The email cannot be blank IF LEN(ALLTRIM(This.cEmail))=0 This.nErrorValidation=8 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * No dot IF AT('.',This.cEmail)=0 This.nErrorValidation=9 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * No @ IF AT('@',This.cEmail)=0 This.nErrorValidation=10 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * We can't accept an email starting with @ IF This.cEmail='@' This.nErrorValidation=11 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * The last character cannot be a dot IF SUBSTR(This.cEmail,LEN(This.cEmail),1)='.' This.nErrorValidation=12 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * If we have more than one @ IF OCCURS('@',This.cEmail)>1 This.nErrorValidation=13 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * No space IF AT(' ',This.cEmail)>0 This.nErrorValidation=14 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * No comma IF AT(',',This.cEmail)>0 This.nErrorValidation=15 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * Bad character IF INLIST(UPPER(This.cEmail),'SPAM','NOSPAM') This.nErrorValidation=16 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * We need to have at least 5 characters IF LEN(This.cEmail)<5 This.nErrorValidation=17 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * After the last dot, we can't have a number IF VAL(SUBSTR(This.cEmail,AT('.',This.cEmail,OCCUR('.',This.cEmail))+1))>0 This.nErrorValidation=18 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * We can't have a dot immediately after the @ lnLocation=AT('@',This.cEmail) IF SUBSTR(This.cEmail,lnLocation+1,1)='.' This.nErrorValidation=19 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF * We can't have a semi-colon lnLocation=AT(';',This.cEmail) IF lnLocation>0 This.nErrorValidation=20 This.cValidationMessage=This.ReturnMessage() RETURN .F. ENDIF