正则表达式--正负整数
参考 https://www.cnblogs.com/yibuyi-123/p/14661160.html
BOOL CheckNumValid(CString strIn)
{
wstring szName = strIn.GetBuffer();
strIn.ReleaseBuffer();
std::wregex reg(L"^-?(([1-9]+\\d*)|(0{1}))(\\.\\d{1,2})?"); //正负数,最多两位小数
std::wsmatch result;
BOOL bIsValid = regex_match(szName, result, reg);
if (!bIsValid)
{
msgbox(L"请输入规范的数字(最多两位小数)!");
}
return bIsValid;
}
主要满足几点要求:
1、保留两位小数
2、允许负数(如果你不想要负数,看着图把负数开头的分支砍掉就可以),正数不需要“+”号表示;不允许-0(或-0.0,-0.00)
3、整数部分,值如果是0,不允许重复这个0(如000,00),如果值不是0,不允许以0开头(如01,001)
wstring szName = strName.GetBuffer();
strName.ReleaseBuffer();
std::wregex reg(L"^[a-zA-Z_0-9\u4e00-\u9fff]+$"); //字母、数字、下划线、汉字
std::wsmatch result;
BOOL bIsValid = regex_match(szName, result, reg);
if (!bIsValid)
{
msgbox(L"不能输入除下划线_以外的特殊字符!");
return;
}

浙公网安备 33010602011771号