检查字符串无效字符的类






4.33/5 (3投票s)
2000年11月5日

98288

958
一个 MFC 类,
引言
一些时间以前,我写了一个应用程序,允许用户输入他们的姓名。为了防止用户输入“脏”字符,例如 §)"§)"=$
,我编写了 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),那就太好了。