IndexOf识别非法字符串,简单易懂。
效果图
可以识别出字符串中的非法字符,并且显示出来。
实现代码
private string UnlegalString(string str)//过滤非法字符串
{
//制定出非法字符串
string Unlegalstr = "-_*×――(^)$%~!/@#$…&%¥—+=<>《》|!!???::•`·、。,;,.;\"‘’“”-]";
//存储提示用户应该修改的文本
string UserMsg = "";
//计数结果
int res = -1;
//根据用户输入长度循环
for (int i = 0; i < str.Length; i++)
{
res=Unlegalstr.IndexOf(str[i]);//若是没有则会返回-1
if (res != -1)//如果不等-1,证明有结果
{
UserMsg += str[i].ToString();//存储结果并返回
}
}
if (res > 0)
return UserMsg;//返回非法字符串
else
return "";//没有则不返回
}
调用
private void button1_Click(object sender, EventArgs e)//Button_Click的方法中
{
//调用上面的方法,上面方法返回是字符串,这里判断一下是不是返回来空的。
if (UnlegalString(textBox1.Text) != "")
{
//获取非法字符串
string str = UnlegalString(textBox1.Text);
MessageBox.Show($"存在非法字符串“{str}”!请修改!", "提示");
}
else
{
MessageBox.Show("不存在非法字符串", "提示");
}
}
扩展一下 res=Unlegalstr.IndexOf(str[i]);
所用到的IndexOf
方法。
String.IndexOf 方法
- 参考官方文档。
定义
-
命名空间:
-
程序集:
System.Runtime.dll
报告指定 Unicode 字符或字符串在此实例中的第一个匹配项的从零开始的索引。 如果未在此实例中找到该字符或字符串,则此方法返回 -1。