假设有一输入框待输入密码,密码类型为CString m_input; ,则判断如下:
判断CString字符串类型的密码是否符合规范///
UpdateData(TRUE);
// 检查密码是否符合规范(长度不小于8位,且必须同时包含大小写字母、数字及特殊符号)
int iLength = m_Input.GetLength();
if (iLength<8)
{
MessageBox(_T("密码长度须至少8位!"), NULL, MB_OK | MB_ICONERROR);
return;
}
int iNumber =0;
int iUpperChar = 0;
int iLowerChar = 0;
int iSpecCharacter = 0;
for (int i=0; i<iLength; i++)
{
int iCharacter = (int)m_Input.GetAt(i);
if (iCharacter >= 0x30 && iCharacter <= 0x39) //数字集合[0x30, 0x39](ASCII码字符对应的十六进制值)
{
iNumber = 1; //字符存在于数字集合中,即包含了数字
}
if (iCharacter >= 0x61 && iCharacter <= 0x7a) //小写字母集合[0x61, 0x7a]
{
iLowerChar = 1; //字符存在于小写字母集合中,即包含了小写字母
}
if (iCharacter >= 0x41 && iCharacter <= 0x5a) //大写字母集合[0x41, 0x5a]
{
iUpperChar = 1; //字符存在于大写字母集合中,即包含了大写字母
}
if (iCharacter >= 0x21 && iCharacter <= 0x7e //可见字符集合[0x21, 0x7e]
&& iNumber == 0 && iLowerChar == 0 && iUpperChar == 0) //可见字符集合中除去数字、大小写字母剩下的即为特殊字符
{
iSpecCharacter = 1; //字符存在于特殊字符集合中,即包含了特殊字符
}
}
if (iNumber == 0 || iUpperChar == 0 || iLowerChar == 0 || iSpecCharacter == 0)
{
MessageBox(_T("密码必须同时包含有大小写字母、数字和特殊符号!"), NULL, MB_OK | MB_ICONERROR);
return;
}
else
{
MessageBox(_T("恭喜您,此密码符合规范!"), NULL, MB_OK | MB_ICONERROR);
}
//