原文地址::Qt判断字符串是否是纯英文,纯中文,纯数字,英文或数字,中文或数字
做项目的时候需要对字符串做下校验,以下是在前辈们的肩膀上并结合自己项目的需要做的一些总结内容。
bool AIFaceDBConfig::IsEnglish(QString &qstrSrc) { QByteArray ba = qstrSrc.toLatin1(); const char *s = ba.data(); bool bret = true; while(*s) { if((*s>='A' && *s<='Z') || (*s>='a' && *s<='z')) { } else { bret = false; break; } s++; } return bret; }
bool AIFaceDBConfig::IsNumber(QString &qstrSrc) { QByteArray ba = qstrSrc.toLatin1(); const char *s = ba.data(); bool bret = true; while(*s) { if(*s>='0' && *s<='9') { } else { bret = false; break; } s++; } return bret; }
bool AIFaceDBConfig::IsNumber(QString &qstrSrc) { QByteArray ba = qstrSrc.toLatin1(); const char *s = ba.data(); bool bret = true; while(*s) { if(*s>='0' && *s<='9') { } else { bret = false; break; } s++; } return bret; }
bool AIFaceDBConfig::IsEnglishOrNumber(QString &qstrSrc) { QByteArray ba = qstrSrc.toLatin1(); const char *s = ba.data(); bool bret = true; while(*s) { if((*s>='A' && *s<='Z') || (*s>='a' && *s<='z') || (*s>='0' && *s<='9')) { } else { bret = false; break; } s++; } return bret; }
bool AIFaceDBConfig::IsChineseOrNumber(QString &qstrSrc) { int nCount = qstrSrc.count(); bool bret = true; for(int i=0; i<nCount; ++i) { QChar cha = qstrSrc.at(i); ushort uni = cha.unicode(); if((uni >= 0x4E00 && uni <= 0x9FA5) || (uni >= '0' && uni <= '9')) { } else { bret = false; break; } } return bret; }