正则表达式--正负整数

参考 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;
	}

  

posted @ 2023-04-19 13:10  曦花  阅读(776)  评论(0编辑  收藏  举报