1. 程式人生 > >Qt 判斷字串滿足某種格式

Qt 判斷字串滿足某種格式

沒有用正則表示式,比較原始的方法

比如說檔案格式為“IMG_20161214_000001.jpg”,中間為日期格式,最後為數字編號,要判斷一個檔案的名稱是否符合上述規則。

輸入:檔案的名稱

輸入:符合規則返回true,不符合返回false

說明:將輸入的名稱字串按照下劃線“_”分割,分成3段,依次判斷這3段是否符合要求

boolUDiskUserManager::checkFileName(char*fileName)
{
QStringstrFileName(fileName);
QStringListlist=strFileName.split("_");
intdigit=0;
if(list[0
]=="IMG") //第一段
{
QStringstrDate=list[1];
if(strDate.size()==8)
{
intyear=strDate.left(4).toInt();
intmonth=strDate.mid(4,2).toInt();
intday=strDate.left(2).toInt();
if((year>1900)&&(year<2099)&&(month>0)&&(month<13)&&(day<32))   //第二段
{
QStringstrCount=list[2
].left(6);
if(strCount.size()==6)
{
charcCount[6]={strCount.at(0).toLatin1(),strCount.at(1).toLatin1(),strCount.at(2).toLatin1(),strCount.at(3).toLatin1(),strCount.at(4).toLatin1(),strCount.at(5).toLatin1()};
for(inti=0;i<6;i++)
{
if((0<=cCount[i])||(cCount[i]<=9)) //第三段,依次判斷每一位是否為數字
{
digit++;
continue
;
}
else
{
returnfalse;
}
}
}
else
{
returnfalse;
}
}
else
{
returnfalse;
}
}
else
{
returnfalse;
}
}
else
{
returnfalse;
}
if(digit==6)
{
returntrue;
}
}

方法比較笨,如果有更好的辦法,還請指正。