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
相关文章
|
1月前
|
C#
30.C# 关键字 this初步学习
30.C# 关键字 this初步学习
14 1
|
1月前
|
C#
28.c#关键字base初步学习
28.c#关键字base初步学习
11 0
|
1月前
|
C#
27.c#关键字sealed修饰类
27.c#关键字sealed修饰类
12 0
|
2月前
|
SQL 开发框架 .NET
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
21 0
|
3月前
|
开发框架 .NET 编译器
C# 9.0中的静态匿名函数:引入static关键字的新用法
【1月更文挑战第15天】C# 9.0为匿名函数带来了一个新的修饰符static,允许开发者明确指定匿名函数不会捕获其包含作用域中的任何变量。这一特性增强了代码的性能和可读性,同时减少了因不小心捕获变量而导致的潜在错误。本文将详细探讨C# 9.0中静态匿名函数的语法、使用场景以及它们如何影响代码的性能和安全性。
|
4月前
|
中间件
在 Egg.js 应用中,你可以通过 `this` 关键字来获取上下文
在 Egg.js 应用中,你可以通过 `this` 关键字来获取上下文
36 1
|
4月前
|
JavaScript
js as关键字
js as关键字
35 0
|
26天前
|
JavaScript 前端开发 开发者
js开发:请解释什么是ES6的let和const关键字,以及它们与var关键字的区别。
ES6引入`let`和`const`替代`var`声明变量。`let`有块级作用域,存在暂时性死区,不进行变量提升,可重新赋值。`const`用于常量,值不可变但引用类型内容可变,同样有块级作用域和暂时性死区。与`var`主要区别在于作用域、变量提升和可变性。这些改进提高了代码的可预测性和安全性。
24 2
|
27天前
|
JavaScript 前端开发
js开发:请解释this关键字在JavaScript中的用法。
JavaScript中的`this`关键字根据执行上下文指向不同对象:全局作用域中指向全局对象(如`window`),普通函数中默认指向全局对象,但作为对象方法时指向该对象。在构造函数中,`this`指向新实例。箭头函数不绑定`this`,而是继承上下文的`this`值。可通过`call`、`apply`、`bind`方法显式改变`this`指向。
9 2
|
1月前
|
存储 Java C++
31.C#:关键字static
31.C#:关键字static
15 1