FMPRO-L Archives

February 2011, Week 3

FMPRO-L@LISTSERV.DARTMOUTH.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Reply To:
FileMaker Pro Discussions <[log in to unmask]>
Date:
Tue, 15 Feb 2011 12:51:22 -0600
Content-Type:
text/plain
Parts/Attachments:
text/plain (751 lines)
At 12:58 12/6/2010, W. D. wrote:
>At 12:30 12/6/2010, Ross Dickson wrote:
>>WD,
>>
>>One way is to create several calculated fields, each comprising one 
>of the criteria.
>>So, you have the following fields:

Thanks for your help, Ross.

Here's what I came up with.  Hope it saves someone
some time & effort:

// Much of this is based on following links and other 
// FileMaker code:
//
// <http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx>
//
// <http://www.regular-expressions.info/email.html>
//
// <http://www.google.com/search?q=RFC+2822>


Field Name          Field Type  Formula / Entry Option

SerialRecordNum     Number      Serial Number with Current
                                Value: "1" Increment: "1"
                                Prevent data that is
                                automatically entered from
                                being changed. Do not allow
                                user to override validation
                                Unique values only Strict
                                data type: "Numeric Only"

SortIndex           Number      Serial Number with Current
                                Value: "1" Increment: "1"
                                Do not allow user to override
                                validation Unique values only
                                Strict data type: "Numeric
                                Only" Indexed

CreationDate        Date        Auto-enter the: "Creation Date"
                                Prevent data that is
                                automatically entered from being
                                changed. Required value

CreationTime        Time        Auto-enter the: "Creation Time"
                                Prevent data that is
                                automatically entered from being
                                changed.

CreationPerson      Text        Auto-enter the: "Creator Name"
                                Prevent data that is
                                automatically entered from being
                                changed.

ModifyDate          Date        Auto-enter the: "Modification
                                Date"
                                Indexed

ModifyTime          Time        Auto-enter the: "Modification
                                Time"

ModifyPerson        Text        Auto-enter the: "Modifier Name"

EmailAddress        Text        Indexed

EmailLength         Calculation (Number)
                                = Length(EmailAddress)

LeftPart            Calculation (Text) Indexed
                                = Left(EmailAddress,(Position(
                                EmailAddress,"@",1,1) -1))

RightPart           Calculation (Text) Indexed
                                = Right(EmailAddress,(
                                EmailLength-Position(
                                EmailAddress,"@",1,1)))

TopLevelDomain      Calculation (Text) Indexed
                                = MiddleWords(Substitute(Middle(
                                EmailAddress, Position(EmailAddress,
                                "@", 1, 1)+1, EmailLength),"."," "),
                                WordCount(Substitute(Middle(
                                EmailAddress,Position(EmailAddress,
                                "@", 1, 1)+1,EmailLength),"."," ")),
                                1)

TLDUpper            Calculation (Text)
                                = Upper(TopLevelDomain)

TLDplusDot          Calculation (Text) 
                                = "." & TLDUpper                                
                                
TLDLower            Calculation (Text) 
                                = Lower(TopLevelDomain)                                
                                
DomainName          Calculation (Text) Indexed
                                = If( WordCount(Substitute(Middle( 
                                EmailAddress,Position(EmailAddress, 
                                "@", 1, 1)+1, EmailLength),"."," "
                                ))>=2, MiddleWords( Substitute(Middle(
                                EmailAddress, Position( EmailAddress, 
                                "@", 1, 1)+1, EmailLength),"."," "),                                
                                WordCount(Substitute(Middle(
                                EmailAddress, Position( EmailAddress, 
                                "@", 1, 1)+1, EmailLength),"."," "))-1, 
                                1) & ".", "") & MiddleWords(Substitute(
                                Middle( EmailAddress, Position(
                                EmailAddress, "@", 1, 1)+1, EmailLength),
                                "."," "), WordCount(Substitute(Middle( 
                                EmailAddress, Position(EmailAddress, 
                                "@", 1, 1)+1, EmailLength),"."," ")), 1)
                                
DomainNmUpper       Calculation (Text) Indexed
                                = Upper(DomainName)                                
                                
LeftPartUpper       Calculation (Text) Indexed
                                = Upper(LeftPart)
                                
NumberOfSpaces      Calculation (Number) Indexed
                                = PatternCount(EmailAddress, " " )                                
                                
NumberOfDoubleDots  Calculation (Number) Indexed
                                = PatternCount(EmailAddress, ".." )                                
                                
NumberOfATs         Calculation (Number) Indexed
                                = PatternCount(EmailAddress, "@" )                                
                                
NumberOfDotATs      Calculation (Number) Indexed
                                = PatternCount(EmailAddress, ".@" )                                
                                
NumberOfATDots      Calculation (Number) Indexed
                                = PatternCount(EmailAddress, "@." )                                
                                
TLDisOnList1        Calculation (Text) 
                                = Case(
TLDUpper="AC","TRUE",
TLDUpper="AD","TRUE",
TLDUpper="AE","TRUE",
TLDUpper="AERO","TRUE",
TLDUpper="AF","TRUE",
TLDUpper="AG","TRUE",
TLDUpper="AI","TRUE",
TLDUpper="AL","TRUE",
TLDUpper="AM","TRUE",
TLDUpper="AN","TRUE",
TLDUpper="AO","TRUE",
TLDUpper="AQ","TRUE",
TLDUpper="AR","TRUE",
TLDUpper="ARPA","TRUE",
TLDUpper="AS","TRUE",
TLDUpper="ASIA","TRUE",
TLDUpper="AT","TRUE",
TLDUpper="AU","TRUE",
TLDUpper="AW","TRUE",
TLDUpper="AX","TRUE",
TLDUpper="AZ","TRUE",
TLDUpper="BA","TRUE",
TLDUpper="BB","TRUE",
TLDUpper="BD","TRUE",
TLDUpper="BE","TRUE",
TLDUpper="BF","TRUE",
TLDUpper="BG","TRUE",
TLDUpper="BH","TRUE",
TLDUpper="BI","TRUE",
TLDUpper="BIZ","TRUE",
TLDUpper="BJ","TRUE",
TLDUpper="BM","TRUE",
TLDUpper="BN","TRUE",
TLDUpper="BO","TRUE",
TLDUpper="BR","TRUE",
TLDUpper="BS","TRUE",
TLDUpper="BT","TRUE",
TLDUpper="BV","TRUE",
TLDUpper="BW","TRUE",
TLDUpper="BY","TRUE",
TLDUpper="BZ","TRUE",
TLDUpper="CA","TRUE",
TLDUpper="CAT","TRUE",
TLDUpper="CC","TRUE",                                
TLDUpper="CD","TRUE",
TLDUpper="CF","TRUE",
TLDUpper="CG","TRUE",
TLDUpper="CH","TRUE",
TLDUpper="CI","TRUE",
"FALSE"
)

TLDisOnList2        Calculation (Text) 
= Case(
TLDUpper="CK","TRUE",
TLDUpper="CL","TRUE",
TLDUpper="CM","TRUE",
TLDUpper="CN","TRUE",
TLDUpper="CO","TRUE",
TLDUpper="COM","TRUE",
TLDUpper="COOP","TRUE",
TLDUpper="CR","TRUE",
TLDUpper="CU","TRUE",
TLDUpper="CV","TRUE",
TLDUpper="CX","TRUE",
TLDUpper="CY","TRUE",
TLDUpper="CZ","TRUE",
TLDUpper="DE","TRUE",
TLDUpper="DJ","TRUE",
TLDUpper="DK","TRUE",
TLDUpper="DM","TRUE",
TLDUpper="DO","TRUE",
TLDUpper="DZ","TRUE",
TLDUpper="EC","TRUE",
TLDUpper="EDU","TRUE",
TLDUpper="EE","TRUE",
TLDUpper="EG","TRUE",
TLDUpper="ER","TRUE",
TLDUpper="ES","TRUE",
TLDUpper="ET","TRUE",
TLDUpper="EU","TRUE",
TLDUpper="FI","TRUE",
TLDUpper="FJ","TRUE",
TLDUpper="FK","TRUE",
TLDUpper="FM","TRUE",
TLDUpper="FO","TRUE",
TLDUpper="FR","TRUE",
TLDUpper="GA","TRUE",
TLDUpper="GB","TRUE",
TLDUpper="GD","TRUE",
TLDUpper="GE","TRUE",
TLDUpper="GF","TRUE",
TLDUpper="GG","TRUE",
TLDUpper="GH","TRUE",
TLDUpper="GI","TRUE",
TLDUpper="GL","TRUE",
TLDUpper="GM","TRUE",
TLDUpper="GN","TRUE",
TLDUpper="GOV","TRUE",
TLDUpper="GP","TRUE",
TLDUpper="GQ","TRUE",
TLDUpper="GR","TRUE",
"FALSE"
)

TLDisOnList3        Calculation (Text) 
= Case(
TLDUpper="GS","TRUE",
TLDUpper="GT","TRUE",
TLDUpper="GU","TRUE",
TLDUpper="GW","TRUE",
TLDUpper="GY","TRUE",
TLDUpper="HK","TRUE",
TLDUpper="HM","TRUE",
TLDUpper="HN","TRUE",
TLDUpper="HR","TRUE",
TLDUpper="HT","TRUE",
TLDUpper="HU","TRUE",
TLDUpper="ID","TRUE",
TLDUpper="IE","TRUE",
TLDUpper="IL","TRUE",
TLDUpper="IM","TRUE",
TLDUpper="IN","TRUE",
TLDUpper="INFO","TRUE",
TLDUpper="INT","TRUE",
TLDUpper="IO","TRUE",
TLDUpper="IQ","TRUE",
TLDUpper="IR","TRUE",
TLDUpper="IS","TRUE",
TLDUpper="IT","TRUE",
TLDUpper="JE","TRUE",
TLDUpper="JM","TRUE",
TLDUpper="JO","TRUE",
TLDUpper="JOBS","TRUE",
TLDUpper="JP","TRUE",
TLDUpper="KE","TRUE",
TLDUpper="KG","TRUE",
TLDUpper="KH","TRUE",
TLDUpper="KI","TRUE",
TLDUpper="KM","TRUE",
TLDUpper="KN","TRUE",
TLDUpper="KP","TRUE",
TLDUpper="KR","TRUE",
TLDUpper="KW","TRUE",
TLDUpper="KY","TRUE",
TLDUpper="KZ","TRUE",
TLDUpper="LA","TRUE",
TLDUpper="LB","TRUE",
TLDUpper="LC","TRUE",
TLDUpper="LI","TRUE",
TLDUpper="LK","TRUE",
TLDUpper="LR","TRUE",
TLDUpper="LS","TRUE",
TLDUpper="LT","TRUE",
TLDUpper="LU","TRUE",
TLDUpper="LV","TRUE",
TLDUpper="LY","TRUE",
"FALSE"
)

TLDisOnList4        Calculation (Text) 
= Case(
TLDUpper="MA","TRUE",
TLDUpper="MC","TRUE",
TLDUpper="MD","TRUE",
TLDUpper="ME","TRUE",
TLDUpper="MG","TRUE",
TLDUpper="MH","TRUE",
TLDUpper="MIL","TRUE",
TLDUpper="MK","TRUE",
TLDUpper="ML","TRUE",
TLDUpper="MM","TRUE",
TLDUpper="MN","TRUE",
TLDUpper="MO","TRUE",
TLDUpper="MOBI","TRUE",
TLDUpper="MP","TRUE",
TLDUpper="MQ","TRUE",
TLDUpper="MR","TRUE",
TLDUpper="MS","TRUE",
TLDUpper="MT","TRUE",
TLDUpper="MU","TRUE",
TLDUpper="MUSEUM","TRUE",
TLDUpper="MV","TRUE",
TLDUpper="MW","TRUE",
TLDUpper="MX","TRUE",
TLDUpper="MY","TRUE",
TLDUpper="MZ","TRUE",
TLDUpper="NA","TRUE",
TLDUpper="NAME","TRUE",
TLDUpper="NC","TRUE",
TLDUpper="NE","TRUE",
TLDUpper="NET","TRUE",
TLDUpper="NF","TRUE",
TLDUpper="NG","TRUE",
TLDUpper="NI","TRUE",
TLDUpper="NL","TRUE",
TLDUpper="NO","TRUE",
TLDUpper="NP","TRUE",
TLDUpper="NR","TRUE",
TLDUpper="NU","TRUE",
TLDUpper="NZ","TRUE",
TLDUpper="OM","TRUE",
TLDUpper="ORG","TRUE",
TLDUpper="PA","TRUE",
TLDUpper="PE","TRUE",
TLDUpper="PF","TRUE",
TLDUpper="PG","TRUE",
TLDUpper="PH","TRUE",
TLDUpper="PK","TRUE",
TLDUpper="PL","TRUE",
TLDUpper="PM","TRUE",
TLDUpper="PN","TRUE",
"FALSE"
)

TLDisOnList5        Calculation (Text) 
= Case(
TLDUpper="PR","TRUE",
TLDUpper="PRO","TRUE",
TLDUpper="PS","TRUE",
TLDUpper="PT","TRUE",
TLDUpper="PW","TRUE",
TLDUpper="PY","TRUE",
TLDUpper="QA","TRUE",
TLDUpper="RE","TRUE",
TLDUpper="RO","TRUE",
TLDUpper="RS","TRUE",
TLDUpper="RU","TRUE",
TLDUpper="RW","TRUE",
TLDUpper="SA","TRUE",
TLDUpper="SB","TRUE",
TLDUpper="SC","TRUE",
TLDUpper="SD","TRUE",
TLDUpper="SE","TRUE",
TLDUpper="SG","TRUE",
TLDUpper="SH","TRUE",
TLDUpper="SI","TRUE",
TLDUpper="SJ","TRUE",
TLDUpper="SK","TRUE",
TLDUpper="SL","TRUE",
TLDUpper="SM","TRUE",
TLDUpper="SN","TRUE",
TLDUpper="SO","TRUE",
TLDUpper="SR","TRUE",
TLDUpper="ST","TRUE",
TLDUpper="SU","TRUE",
TLDUpper="SV","TRUE",
TLDUpper="SY","TRUE",
TLDUpper="SZ","TRUE",
TLDUpper="TC","TRUE",
TLDUpper="TD","TRUE",
TLDUpper="TEL","TRUE",
TLDUpper="TF","TRUE",
TLDUpper="TG","TRUE",
TLDUpper="TH","TRUE",
TLDUpper="TJ","TRUE",
TLDUpper="TK","TRUE",
TLDUpper="TL","TRUE",
TLDUpper="TM","TRUE",
TLDUpper="TN","TRUE",
TLDUpper="TO","TRUE",
TLDUpper="TP","TRUE",
TLDUpper="TR","TRUE",
TLDUpper="TRAVEL","TRUE",
TLDUpper="TT","TRUE",
TLDUpper="TV","TRUE",
TLDUpper="TW","TRUE",
"FALSE"
)

TLDisOnList6        Calculation (Text) 
= Case(
TLDUpper="TZ","TRUE",
TLDUpper="UA","TRUE",
TLDUpper="UG","TRUE",
TLDUpper="UK","TRUE",
TLDUpper="US","TRUE",
TLDUpper="UY","TRUE",
TLDUpper="UZ","TRUE",
TLDUpper="VA","TRUE",
TLDUpper="VC","TRUE",
TLDUpper="VE","TRUE",
TLDUpper="VG","TRUE",
TLDUpper="VI","TRUE",
TLDUpper="VN","TRUE",
TLDUpper="VU","TRUE",
TLDUpper="WF","TRUE",
TLDUpper="WS","TRUE",
TLDUpper="XN--0ZWM56D","TRUE",
TLDUpper="XN--11B5BS3A9AJ6G","TRUE",
TLDUpper="XN--3E0B707E","TRUE",
TLDUpper="XN--45BRJ9C","TRUE",
TLDUpper="XN--80AKHBYKNJ4F","TRUE",
TLDUpper="XN--9T4B11YI5A","TRUE",
TLDUpper="XN--DEBA0AD","TRUE",
TLDUpper="XN--FIQS8S","TRUE",
TLDUpper="XN--FIQZ9S","TRUE",
TLDUpper="XN--FPCRJ9C3D","TRUE",
TLDUpper="XN--FZC2C9E2C","TRUE",
TLDUpper="XN--G6W251D","TRUE",
TLDUpper="XN--GECRJ9C","TRUE",
TLDUpper="XN--H2BRJ9C","TRUE",
TLDUpper="XN--HGBK6AJ7F53BBA","TRUE",
TLDUpper="XN--HLCJ6AYA9ESC7A","TRUE",
TLDUpper="XN--J6W193G","TRUE",
TLDUpper="XN--JXALPDLP","TRUE",
TLDUpper="XN--KGBECHTV","TRUE",
TLDUpper="XN--KPRW13D","TRUE",
TLDUpper="XN--KPRY57D","TRUE",
TLDUpper="XN--MGBAAM7A8H","TRUE",
TLDUpper="XN--MGBAYH7GPA","TRUE",
TLDUpper="XN--MGBBH1A71E","TRUE",
TLDUpper="XN--MGBERP4A5D4AR","TRUE",
TLDUpper="XN--O3CW4H","TRUE",
TLDUpper="XN--OGBPF8FL","TRUE",
TLDUpper="XN--P1AI","TRUE",
TLDUpper="XN--PGBS0DH","TRUE",
TLDUpper="XN--S9BRJ9C","TRUE",
TLDUpper="XN--WGBH1C","TRUE",
TLDUpper="XN--WGBL6A","TRUE",
TLDUpper="XN--XKC2AL3HYE2A","TRUE",
TLDUpper="XN--XKC2DL3A5EE0H","TRUE",
"FALSE"
)

TLDisOnList7        Calculation (Text) 
= Case(
TLDUpper="XN--YFRO4I67O","TRUE",
TLDUpper="XN--YGBI2AMMX","TRUE",
TLDUpper="XN--ZCKZAH","TRUE",
TLDUpper="YE","TRUE",
TLDUpper="YT","TRUE",
TLDUpper="ZA","TRUE",
TLDUpper="ZM","TRUE",
TLDUpper="ZW","TRUE",
"FALSE"
)

TLDisOnList         Calculation (Text) Indexed
= Case(
TLDisOnList1,"TRUE",
TLDisOnList2,"TRUE",
TLDisOnList3,"TRUE",
TLDisOnList4,"TRUE",
TLDisOnList5,"TRUE",
TLDisOnList6,"TRUE",
TLDisOnList7,"TRUE",
"FALSE"
)

RightPartWODomainName Calculation (Text) Indexed
                                = Substitute(RightPart, DomainName, "")

Subdomain           Calculation (Text) 
                                = If(Right(RightPartWODomainName, 
                                1) = ".",Middle(RightPartWODomainName,
                                1, Length(RightPartWODomainName) - 1),
                                "")
                                
LeftPartValidChars  Calculation (Number) 
= PatternCount(LeftPartUpper,"A") +
PatternCount(LeftPartUpper,"B") +
PatternCount(LeftPartUpper,"C") +
PatternCount(LeftPartUpper,"D") +
PatternCount(LeftPartUpper,"E") +
PatternCount(LeftPartUpper,"F") +
PatternCount(LeftPartUpper,"G") +
PatternCount(LeftPartUpper,"H") +
PatternCount(LeftPartUpper,"I") +
PatternCount(LeftPartUpper,"J") +
PatternCount(LeftPartUpper,"K") +
PatternCount(LeftPartUpper,"L") +
PatternCount(LeftPartUpper,"M") +
PatternCount(LeftPartUpper,"N") +
PatternCount(LeftPartUpper,"O") +
PatternCount(LeftPartUpper,"P") +
PatternCount(LeftPartUpper,"Q") +
PatternCount(LeftPartUpper,"R") +
PatternCount(LeftPartUpper,"S") +
PatternCount(LeftPartUpper,"T") +
PatternCount(LeftPartUpper,"U") +
PatternCount(LeftPartUpper,"V") +
PatternCount(LeftPartUpper,"W") +
PatternCount(LeftPartUpper,"X") +
PatternCount(LeftPartUpper,"Y") +
PatternCount(LeftPartUpper,"Z") +
PatternCount(LeftPartUpper,"0") +
PatternCount(LeftPartUpper,"1") +
PatternCount(LeftPartUpper,"2") +
PatternCount(LeftPartUpper,"3") +
PatternCount(LeftPartUpper,"4") +
PatternCount(LeftPartUpper,"5") +
PatternCount(LeftPartUpper,"6") +
PatternCount(LeftPartUpper,"7") +
PatternCount(LeftPartUpper,"8") +
PatternCount(LeftPartUpper,"9") +
PatternCount(LeftPartUpper,".") +
PatternCount(LeftPartUpper,"_") +
PatternCount(LeftPartUpper,"%") +
PatternCount(LeftPartUpper,"+") +
PatternCount(LeftPartUpper,"-") +
PatternCount(LeftPartUpper,"*") +
PatternCount(LeftPartUpper,"'") +
PatternCount(LeftPartUpper,"&")

LeftPartIsValid     Calculation (Text) Indexed
                                = Case(LeftPartValidChars = Length(
                                LeftPart), "TRUE", "FALSE")
                                
LeftPartNonSuspiciousChars Calculation (Number) = PatternCount(LeftPartUpper,"A") +
PatternCount(LeftPartUpper,"B") +
PatternCount(LeftPartUpper,"C") +
PatternCount(LeftPartUpper,"D") +
PatternCount(LeftPartUpper,"E") +
PatternCount(LeftPartUpper,"F") +
PatternCount(LeftPartUpper,"G") +
PatternCount(LeftPartUpper,"H") +
PatternCount(LeftPartUpper,"I") +
PatternCount(LeftPartUpper,"J") +
PatternCount(LeftPartUpper,"K") +
PatternCount(LeftPartUpper,"L") +
PatternCount(LeftPartUpper,"M") +
PatternCount(LeftPartUpper,"N") +
PatternCount(LeftPartUpper,"O") +
PatternCount(LeftPartUpper,"P") +
PatternCount(LeftPartUpper,"Q") +
PatternCount(LeftPartUpper,"R") +
PatternCount(LeftPartUpper,"S") +
PatternCount(LeftPartUpper,"T") +
PatternCount(LeftPartUpper,"U") +
PatternCount(LeftPartUpper,"V") +
PatternCount(LeftPartUpper,"W") +
PatternCount(LeftPartUpper,"X") +
PatternCount(LeftPartUpper,"Y") +
PatternCount(LeftPartUpper,"Z") +
PatternCount(LeftPartUpper,"0") +
PatternCount(LeftPartUpper,"1") +
PatternCount(LeftPartUpper,"2") +
PatternCount(LeftPartUpper,"3") +
PatternCount(LeftPartUpper,"4") +
PatternCount(LeftPartUpper,"5") +
PatternCount(LeftPartUpper,"6") +
PatternCount(LeftPartUpper,"7") +
PatternCount(LeftPartUpper,"8") +
PatternCount(LeftPartUpper,"9") +
PatternCount(LeftPartUpper,".") +
PatternCount(LeftPartUpper,"_") +
PatternCount(LeftPartUpper,"-")

LeftPartNonSuspiciousChars Calculation (Number) 
= PatternCount(LeftPartUpper,"A") +
PatternCount(LeftPartUpper,"B") +
PatternCount(LeftPartUpper,"C") +
PatternCount(LeftPartUpper,"D") +
PatternCount(LeftPartUpper,"E") +
PatternCount(LeftPartUpper,"F") +
PatternCount(LeftPartUpper,"G") +
PatternCount(LeftPartUpper,"H") +
PatternCount(LeftPartUpper,"I") +
PatternCount(LeftPartUpper,"J") +
PatternCount(LeftPartUpper,"K") +
PatternCount(LeftPartUpper,"L") +
PatternCount(LeftPartUpper,"M") +
PatternCount(LeftPartUpper,"N") +
PatternCount(LeftPartUpper,"O") +
PatternCount(LeftPartUpper,"P") +
PatternCount(LeftPartUpper,"Q") +
PatternCount(LeftPartUpper,"R") +
PatternCount(LeftPartUpper,"S") +
PatternCount(LeftPartUpper,"T") +
PatternCount(LeftPartUpper,"U") +
PatternCount(LeftPartUpper,"V") +
PatternCount(LeftPartUpper,"W") +
PatternCount(LeftPartUpper,"X") +
PatternCount(LeftPartUpper,"Y") +
PatternCount(LeftPartUpper,"Z") +
PatternCount(LeftPartUpper,"0") +
PatternCount(LeftPartUpper,"1") +
PatternCount(LeftPartUpper,"2") +
PatternCount(LeftPartUpper,"3") +
PatternCount(LeftPartUpper,"4") +
PatternCount(LeftPartUpper,"5") +
PatternCount(LeftPartUpper,"6") +
PatternCount(LeftPartUpper,"7") +
PatternCount(LeftPartUpper,"8") +
PatternCount(LeftPartUpper,"9") +
PatternCount(LeftPartUpper,".") +
PatternCount(LeftPartUpper,"_") +
PatternCount(LeftPartUpper,"-")

LeftPartIsSuspicious Calculation (Text) Indexed
                                = Case(LeftPartNonSuspiciousChars = 
                                Length(LeftPart), "FALSE", "TRUE")
                                
DomainPart          Calculation (Text) 
                                = Substitute(DomainNmUpper, 
                                TLDplusDot, "")                                
                                
DomainPartValidChars Calculation (Number) 
= PatternCount(DomainPart,"A") +
PatternCount(DomainPart,"B") +
PatternCount(DomainPart,"C") +
PatternCount(DomainPart,"D") +
PatternCount(DomainPart,"E") +
PatternCount(DomainPart,"F") +
PatternCount(DomainPart,"G") +
PatternCount(DomainPart,"H") +
PatternCount(DomainPart,"I") +
PatternCount(DomainPart,"J") +
PatternCount(DomainPart,"K") +
PatternCount(DomainPart,"L") +
PatternCount(DomainPart,"M") +
PatternCount(DomainPart,"N") +
PatternCount(DomainPart,"O") +
PatternCount(DomainPart,"P") +
PatternCount(DomainPart,"Q") +
PatternCount(DomainPart,"R") +
PatternCount(DomainPart,"S") +
PatternCount(DomainPart,"T") +
PatternCount(DomainPart,"U") +
PatternCount(DomainPart,"V") +
PatternCount(DomainPart,"W") +
PatternCount(DomainPart,"X") +
PatternCount(DomainPart,"Y") +
PatternCount(DomainPart,"Z") +
PatternCount(DomainPart,"0") +
PatternCount(DomainPart,"1") +
PatternCount(DomainPart,"2") +
PatternCount(DomainPart,"3") +
PatternCount(DomainPart,"4") +
PatternCount(DomainPart,"5") +
PatternCount(DomainPart,"6") +
PatternCount(DomainPart,"7") +
PatternCount(DomainPart,"8") +
PatternCount(DomainPart,"9") +
PatternCount(DomainPart,"-")

DomainPartFirstChar Calculation (Text) 
                                = Left(DomainPart,1)            
                                
DomainPartLastChar Calculation (Text) 
                                = Right(DomainPart,1)                                
                                
DomainPartIsValid Calculation (Text) Indexed
                                = Case(
                                DomainPartFirstChar = "-", "FALSE",
                                DomainPartLastChar = "-", "FALSE",
                                DomainPartValidChars = Length(
                                DomainPart), "TRUE","FALSE")                                
                                
EmailAddressIsValid Calculation (Text) Indexed
                                = Case(
                                TLDisOnList = "FALSE","FALSE",
                                LeftPartIsValid = "FALSE","FALSE",
                                DomainPartIsValid = "FALSE","FALSE",
                                NumberOfSpaces > 0, "FALSE",
                                NumberOfDotATs > 0, "FALSE",
                                NumberOfATDots > 0, "FALSE",
                                NumberOfDoubleDots > 0, "FALSE",
                                NumberOfATs > 1, "FALSE",
                                "TRUE")                                
                                
EmailAddressIsSuspicious Calculation (Text) Indexed
                                = Case(
                                LeftPartIsSuspicious = "TRUE", "TRUE",
                                TLDisOnList = "FALSE","TRUE",
                                LeftPartIsValid = "FALSE","TRUE",
                                DomainPartIsValid = "FALSE","TRUE",
                                "FALSE")                                
                                
EmailAddressInvalidReasons Calculation (Text) Indexed
                                = If(TLDisOnList = "FALSE", 
                                "TLD-Not-On-List ", "") &
                                If(LeftPartIsValid = "FALSE", 
                                "Left-Part-Is-Not-Valid ", "") &
                                If(DomainPartIsValid = "FALSE", 
                                "Domain-Part-Is-Not-Valid ", "") &
                                If(NumberOfSpaces > 0, 
                                "Spaces-In-Email-Address ", "") &
                                If((NumberOfDotATs > 0) or 
                                (NumberOfATDots > 0), 
                                "Dot-Next-To-@-Sign ", "") &
                                If(NumberOfDoubleDots > 0, 
                                "Dots-Next-To-Each-Other ", "") &
                                If(NumberOfATs > 1, 
                                "More-Than-One-@-Sign ", "")                                
                                
DisableDate         Date                                

DisableReason       Text

EmailAddressIsUsable Calculation (Text) Indexed
                                = Case(
                                EmailAddressIsValid = "FALSE","FALSE",
                                DisableDate <> "","FALSE",
                                DisableReason <> "","FALSE",
                                "TRUE")
                                
QuestionableDate    Date

QuestionableReasons Text

EmailAddressIsQuestionable Calculation (Text) Indexed
                                = Case(
                                EmailAddressIsSuspicious = "TRUE",
                                "TRUE",
                                QuestionableDate <> "","TRUE",
                                QuestionableReasons <> "","TRUE",
                                "FALSE")                                


Start Here to Find It Fast!™ -> http://www.US-Webmasters.com/best-start-page/
$8.77 Domain Names -> http://domains.us-webmasters.com/

ATOM RSS1 RSS2