如果在要限输入框控件的内容为5位数字,可以用正则式以判断.代码如下:
#include <pcre.h>
void __fastcall TForm1::Button34Click(TObject *Sender)
{
char szReg[]="^\\d{5}$"; // 限定为5位数字
char szStr[]="10025";
const char *pszErr;
int nErrOffset;
pcre *re = pcre_compile(szReg,0,&pszErr,&nErrOffset,NULL);// 先准备表达式
if(re==NULL)
{
return ;
}
int ovector[30]; // 数量由szReg决定,大致为(括号对数+1)*3,可以用pcre_info获得或者直接留大一点。
int len = strlen(szStr);
int rc = pcre_exec(re, NULL, szStr, len, 0, ovector, 30); // 执行匹配
//如果只是想知道匹配结果,只要到这一步就可以了,当rc大于0,就是匹配成功
for(int i=0; i<rc; i++)
{
char *substring_start = szStr + ovector[2*i];
int substring_length = ovector[2*i+1] - ovector[2*i];
//printf("%2d: %.*s/n", i, substring_length, substring_start);
}
free(re);
}