65.9K
CodeProject 正在变化。 阅读更多。
Home

检查字符串无效字符的类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (3投票s)

2000年11月5日

viewsIcon

98288

downloadIcon

958

一个 MFC 类, 可让您检查字符串中的无效字符

  • 下载源代码文件 - 4 Kb
  • 下载演示项目 - 15 Kb
  • 引言

    一些时间以前,我写了一个应用程序,允许用户输入他们的姓名。为了防止用户输入“脏”字符,例如 §)"§)"=$,我编写了 CCharCheck 类。

    您可以明确地告诉这个类允许哪些字符。然后,CCharCheck 会检查您的字符串中是否存在无效字符,并告知您。

    您可以通过调用 AddChar(...) 添加单个字符。以下代码段添加了字符 'a'

    // Adding the character 'a'
    myCharCheck.AddChar( 'a' )
    

    您还可以将字符范围添加到允许字符列表中。例如,您希望添加 ASCII 表中 a 到 z 之间的所有字符。因此,您调用 AddRange( 'a', 'z' )。a 到 z 之间的所有字符都将被添加。注意:您提供的两个字符(在本例中为 a 和 z)也将被添加。无法反向执行此操作(AddRange('z', 'a'))。注意:CCharCheck 区分大小写!

    例如,如果您想添加所有大写和小写字母以及所有数字,您将输入

    // add all minor and capital letters and all numbers
    	CharCheck.AddRange( 'a', 'z' );
    	CharCheck.AddRange( 'A', 'Z' );
    	CharCheck.AddChar( '0' );
    	CharCheck.AddChar( '1' );
    	CharCheck.AddChar( '2' );
    	CharCheck.AddChar( '3' );
    	CharCheck.AddChar( '4' );
    	CharCheck.AddChar( '5' );
    	CharCheck.AddChar( '6' );
    	CharCheck.AddChar( '7' );
    	CharCheck.AddChar( '8' );
    	CharCheck.AddChar( '9' );
    

    好的,现在我们已经告诉类允许哪些字符了。现在调用 CheckString 函数来检查字符串中是否存在无效参数。CheckString 的第一个参数是类型为 CString,它是您要检查的字符串。第二个参数使您可以告诉 CheckString 从字符串的哪个位置开始检查。2 表示在字符串的第一个字符之后。0 表示应搜索整个字符串。
    如果找到不允许的字符,CheckString 将返回字符串中的位置(1 表示在第一个位置)。如果没有找到任何内容,则返回 0。

    ResetRanges 函数用于删除所有添加的范围和字符。这是对类的完全重置。

    计划改进


    我想添加一个函数,该函数仅从字符串中删除不允许的字符。

    示例代码

    	CCharCheck CharCheck;
    	int ret;
    
    	// add all minor letters and all numbers
    	CharCheck.AddRange( 'a', 'z' );
    	CharCheck.AddChar( '0' );
    	CharCheck.AddChar( '1' );
    	CharCheck.AddChar( '2' );
    	CharCheck.AddChar( '3' );
    	CharCheck.AddChar( '4' );
    	CharCheck.AddChar( '5' );
    	CharCheck.AddChar( '6' );
    	CharCheck.AddChar( '7' );
    	CharCheck.AddChar( '8' );
    	CharCheck.AddChar( '9' );
    
    	// check the string
    	// if return value is bigger than 0, a not allowed char was found in the string
    	ret = CharCheck.CheckString( "This is the string to check " , 0 );
    
    	if (ret  > 0)
    	{
    		// string contains invalid char
    	}
    	else
    	{
    		// string OK
    	}	
    

    注意:该类是免费的,您可以随意使用它。但如果您能给我发送电子邮件并告诉我您的体验(ThomasHauth@gmx.de),那就太好了。

    © . All rights reserved.