C#简单识别非法字符串是否存在

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.​Index​Of 方法

  • 参考官方文档。

定义

  • 程序集:

    System.Runtime.dll

报告指定 Unicode 字符或字符串在此实例中的第一个匹配项的从零开始的索引。 如果未在此实例中找到该字符或字符串,则此方法返回 -1

猜你喜欢

转载自blog.csdn.net/aa989111337/article/details/126100594