有效性验证:用VC验证EMAIL有效性

最近编写个软件Software中需要验证EMAIL有效性本以为网络上应该到处都是没想到google上绝大部分都是ASP或JavaScript代码VC或Delphi代码几乎没有没办法只好跟据别人写ASP代码以及大部分人些验证方面经验自已写了

整理总结了下合法email地址格式如下(只是大致上判断希望大家能不断充实或有更好想法):
1. 首必须用字母而且其它只能用26个大小写字母、0~9及_-.@符号
2. 必须包含个并且只有个符号“@”
3. @后必须包含至少个至多 3个符号“.”
4. 第不得是“@”或者“.”(第步已检查过了)
5. 不允许出现“@.”或者.@
6. 结尾不得是“@”或者“.”

现在就把本人写代码发布出来给大家做参考以下代码在VS2005(UNICODE)中测试通过应该来说基本满足大部分验证需求:

//检查有效性包括26个大小写字母、0~9及_-.@符号

BOOL IsValidChar(char ch)
{
( (ch>=97) && (ch<=122) ) //26个小写字母
TRUE;

( (ch>=65) && (ch<=90) ) //26个大写字母
TRUE;

((ch>=48) && (ch<=57)) //0~9
TRUE;

( ch95 || ch45 || ch46 || ch64 ) //_-.@
TRUE;

FALSE;
}

//EMAIL有效性验证

BOOL IsValidEmail(CString strEmail)
{

(strEmail.GetLength<5) //[email protected]
FALSE;

char ch = strEmail[0];
//1. 首必须用字母
( ((ch>=97) && (ch<=122)) || ((ch>=65) && (ch<=90)) )
{
atCount =0;
atPos = 0;
dotCount = 0;

for( i=1;i<strEmail.GetLength;i) //0已经判断过了从1开始
{
ch = strEmail[i];
(IsValidChar(ch))
{
(ch64) //"@"
{
atCount ;
atPos = i;
}
( (atCount>0) && (ch46) )//@符号后"."号
dotCount ;
}

FALSE;
}

//6. 结尾不得是“@”或者“.”
( ch 46 )
FALSE;

//2. 必须包含个并且只有个符号“@”
//3. @后必须包含至少个至多 3个符号“.”
( (atCount!=1) || (dotCount<1) || (dotCount>3) )
FALSE;

//5. 不允许出现“@.”或者.@
( strEmail.Find(_T("@."))>0 || strEmail.Find(_T(".@"))>0 )
FALSE;

TRUE;
}

FALSE;
}

测试结果:

IsValidEmail(_T("[email protected]")); 返回TRUE
IsValidEmail(_T("[email protected]")); 返回FALSE
IsValidEmail(_T("[email protected]")); 返回FALSE
IsValidEmail(_T("[email protected]")); 返回TRUE
IsValidEmail(_T("[email protected]")); 返回TRUE
IsValidEmail(_T("[email protected]")); 返回FALSE
IsValidEmail(_T([email protected])); 返回FALSE
Tags:  vc有什么用 vc怎么用 纠正措施有效性验证 有效性验证

延伸阅读

最新评论

发表评论