C#过滤关键字,js过滤关键字

简介:

C#:后台过滤关键字    

    //过滤关键字【区分大小写】

        public string HtmlEscapeCode(string html)

        {

            var strhtml = html.Replace("javascript", "")

                        .Replace("vbscript", "")

                        .Replace("jscript", "")

                        .Replace("script", "")

                        .Replace("eval", "")

                        .Replace("<", "<")

                        .Replace(">", ">")

                        .Replace("\'", "'")

                        .Replace("\"", """)

                        .Replace("&", "&")

                        .Replace("#", "#");

            return strhtml;

        }


    //过滤关键字【不区分大小写】

        public string HtmlEscapeCode(string html)

        {


            var newstrhtml = Regex.Replace(html, "javascript", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "vbscript", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "jscript", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "script", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "eval", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "alert", "*", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, "<", "<", RegexOptions.IgnoreCase);

            newstrhtml = Regex.Replace(newstrhtml, ">", ">", RegexOptions.IgnoreCase);

            return newstrhtml;

        }



js:前端过滤关键字【不区分大小写过滤的把gm替换成gi即可】

            var keyWordsList = ["javascript", "vbscript", "jscript", "script", "eval"];

            var keyWordsList1 = ["<", ">", "\'", "\"", "&", "#"];

                var strRemark = $.trim($("textarea[remark=" + id + "]").val());//字符串值

                var filtRemark = strRemark.replace(/[\r\n]/g, "");


                for (var j = 0; j < keyWordsList.length; j++) {

                    //替换为空【重复多次出现也会过滤掉】

                    filtRemark = filtRemark.replace(new RegExp(keyWordsList[j], 'gm'), '');

                }

                //替换为空的【重复多次出现也会过滤掉】

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[0], 'gm'), '<');

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[1], 'gm'), '>');

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[2], 'gm'), ''');

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[3], 'gm'), '"');

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[4], 'gm'), '&');

                filtRemark = filtRemark.replace(new RegExp(keyWordsList1[5], 'gm'), '#');



/regexp/i 不区分大小写的匹配
/regexp/s 使句点(.)匹配任何字符,包括换行符(\n)
/regexp/x 从模式中删除空白符和注释
/regexp/m 使^匹配换行符 (\n)之后的内容,美元符号($)匹配换行符 (\n)之前的内容
/regexp/e 如果替换字符串是
PHP代码,使用eval()执行该代码来得到实际的替换字符串。
 
PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符,如表4-13所示:
表4-13:其他的PHP标志
修饰符 意 义
/regexp/U 颠倒子模式的贪婪性;*和+尽可能少地匹配而不是尽可能多。
/regexp/u 把模式字符串当作UTF-8编码对待
/regexp/X 如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误
/regexp/A 把锚定位在字符串的开头就像模式中有^一样
/regexp/D 使$字符仅匹配一行的末尾
/regexp/S 使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度

本文转自程序猿博客51CTO不可靠,原文链接http://blog.51cto.com/haihuiwei/1956315如需转载请自行联系原作者

365850153
相关文章
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
1162 3
|
JavaScript 前端开发 安全
ECMAScript 6(以下简称 ES6)的出现为 JavaScript 带来了许多新的特性和改进,其中 let 和 const 是两个非常重要的关键字。
ES6 引入了 `let` 和 `const` 关键字,为 JavaScript 的变量管理带来了革新。`let` 提供了块级作用域和暂存死区特性,避免变量污染,增强代码可读性和安全性;`const` 用于声明不可重新赋值的常量,但允许对象和数组的内部修改。两者在循环、函数内部及复杂项目中广泛应用,有助于实现不可变数据结构,提升代码质量。
271 5
|
前端开发 JavaScript 开发者
除了 async/await 关键字,还有哪些方式可以在 JavaScript 中实现异步编程?
【10月更文挑战第30天】这些异步编程方式在不同的场景和需求下各有优劣,开发者可以根据具体的项目情况选择合适的方式来实现异步编程,以达到高效、可读和易于维护的代码效果。
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
300 8
|
JavaScript 前端开发
JavaScript this 关键字
JavaScript this 关键字
132 2
|
JavaScript 前端开发 Java
JavaScript 保留关键字
JavaScript 保留关键字
172 2
|
JavaScript 前端开发
JavaScript 语句标识符(关键字)
【8月更文挑战第29天】
277 5
|
C# 索引
C#中的virtual和override关键字
C#中的virtual和override关键字
256 3
|
编译器 C# 计算机视觉
C#中的ref关键字
C#中的ref关键字
290 1
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
在C#中,`this`关键字用于扩展方法,允许向已有类型添加功能而不修改其源代码。扩展方法必须在静态类中定义,且第一个参数使用`this`修饰,如`public static XElement AcquireElement(this XContainer container, string name, bool addFirst = false)`。这种方式增强了代码的可读性和类型的安全性,尤其在处理第三方库时。
223 2