If you need to Validate Email Address Fields for Strange inputs, here is the one that helps.
method ValidateEmailAddress
/+ &email as String +/
/+ Returns String +/
Local number &nReason, &k;
/*Check for Strange Chars.~ ! @ # $ % ^ & * ( ) + { } | < > ? : " / ` = ; ' , [ ] \*/
Local array of string &astrEmailChecker = %This.buildCheckArray();
For &k = 1 To &astrEmailChecker.Len;
If Find(&email, &astrEmailChecker [&k]) = 0 Then
Return &astrEmailChecker [&k];
End-If;
End-For;
/*check for numbers in the predomain string e.g predomain@domain.com*/
Local number &nATPos = Find("@", &email);
Local string &sEmlPre@ = Substring(&email, 1, &nATPos - 1);
/*Check for all numbers*/
If IsDigits(&sEmlPre@) Then
/* do error processing */
Return "Digits in email before @ sign."
Else
/* do processing */
End-If;
/*check for Dot*/
Local string &sEmailDomain = Substring(&email, &nATPos + 1, Len(&email));
Local number &nPeriodPos = Find(".", &sEmailDomain, 2);
Local string &sEmlPost@ = Substring(&sEmailDomain, 1, &nPeriodPos - 1);
If &nATPos = 0 Then
Return "Email do not contain @ sign in the email.";
End-If;
If &nATPos = 0 Or
&nPeriodPos = 0 Then
Return "Email do not contain . after @ sign in the email.";
End-If;
If IsDigits(&sEmlPost@) Then
/* do error processing */
Return "Digits in email after @ sign and before dot.";
Else
/* do processing */
End-If;
Return "OK";
end-method;
method buildCheckArray
/+ Returns Array of String +/
Local array of string &astrEmail = CreateArrayRept("", 0);
&astrEmail.Push("~");
&astrEmail.Push("!");
&astrEmail.Push("@");
&astrEmail.Push("#");
&astrEmail.Push("$");
&astrEmail.Push("%");
&astrEmail.Push("^");
&astrEmail.Push("&");
&astrEmail.Push("*");
&astrEmail.Push("(");
&astrEmail.Push(")");
&astrEmail.Push("+");
&astrEmail.Push("{");
&astrEmail.Push("}");
&astrEmail.Push("|");
&astrEmail.Push("<");
&astrEmail.Push(">");
&astrEmail.Push("?");
&astrEmail.Push(":");
&astrEmail.Push("""");
&astrEmail.Push("/");
&astrEmail.Push("`");
&astrEmail.Push("=");
&astrEmail.Push(";");
&astrEmail.Push("'");
&astrEmail.Push(",");
&astrEmail.Push("[");
&astrEmail.Push("]");
&astrEmail.Push("\");
Return &astrEmail;
end-method;
No comments:
Post a Comment