zoukankan      html  css  js  c++  java
  • 输入字符串只能是数字或者分数

    BOOL IcUiNumericEdit::IsMatchChar(UINT nChar)
    {
        //首先如果不是 0-9, '.','/',Backspace,直接返回 0的ASCII 48, 9的ASCII 57, /的ASCII 47,点.的ASCII 46. backspace 8
    
        if(nChar == '.' || (nChar >= '0' && nChar <= '9') || nChar == '/'  || nChar == 8)
        {
            CString strRet;
            GetWindowText(strRet);
            int nLen = strRet.GetLength();
            if(nChar == '/')    //如果nChar为‘/'。 返回错误情况: 1. 作为字符串首,2. 前面为'.' 3. 前已存在‘/'时
            {
                if(strRet.Trim().IsEmpty())
                    return FALSE;
                
                if(strRet.GetAt(nLen - 1) == '.')    //最后一个为'.'
                    return FALSE;
                if(strRet.Find('/') != -1)    // -1 表示没有找到
                    return FALSE;
            }
            else if(nChar == '.') //如果nChar为 '.' 返回错误情况 1.作为字符串首 2. 前为‘.',‘/’时。 3. 存在斜线了,判断其后是否已存在'.',如果不存在判断’/‘前是否存在
            {
                if(strRet.Trim().IsEmpty())
                    return FALSE;
                int nLen = strRet.GetLength();
                if(strRet.GetAt(nLen - 1) == '.' || strRet.GetAt(nLen - 1) == '/')
                    return FALSE;
                if(strRet.Find('/') == -1) // 当前没有'/'
                {
                    if(strRet.Find('.') != -1)
                        return false;
                }
                else
                {
                    //获取当前'/'后的字符串,如果后面字符串中存在.,则返回false
                    int nStart = strRet.Find('/');
                    CString strSub = strRet.Right(nLen - nStart - 1);
                    if(strSub.Find('.') != -1)
                        return FALSE;
                }
    
            }
            return TRUE;
        }
        return FALSE;
    }
  • 相关阅读:
    Python 多线程就这么简单
    Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例
    LAMP第四部分 mysql相关
    LAMP第三部分php配置和mysql配置
    LAMP第二部分apache的配置
    LAMP第一部分安装mysql -apache -php
    LAMP总四部分
    用户和组管理
    系统操作命令
    2017网易---统计回文
  • 原文地址:https://www.cnblogs.com/sdnyzhl/p/4217734.html
Copyright © 2011-2022 走看看