首页 > JavaScript
阅读:124
JS在接收表单数据时过滤特殊字符
在接收表单数据时,经常需要检测特殊字符,过滤敏感词汇。本例为 String 扩展一个原型方法 filter(),用来检测字符串中是否包含指定的特殊字符。
定义 filter() 的参数为任意长度和个数的特殊字符列表,检测的返回结果为布尔值。如果检测到任意指定的特殊字符,则返回 true,否则返回 false。
下面应用 String 类型的扩展方法 check() 来检测字符串中是否包含特殊字符尖角号,以判断字符串中是否存在 HTML 标签。
定义 filter() 的参数为任意长度和个数的特殊字符列表,检测的返回结果为布尔值。如果检测到任意指定的特殊字符,则返回 true,否则返回 false。
//检测特殊字符,蚕食为特殊字符列表,返回true表示存在,否则不存在 String.prototype.filter = function () { if (arguments.length < 1) throw new Error("缺少参数"); //如果没有参数,则抛出异常 var a = [], _this = this; //定义空数组,把字符串存储在内部变量中 for (var i = 0; i <arguments.length; i ++) { //遍历参数,把参数列表转换为数组 a.push(arguments[i]); //把每个参数值推入数组 } var i = -1; //初始化临时变量为-1 a.forEach(function(key) { //迭代数组,检测字符串中是否包含特殊字符 if (i != -1) return true; //如果临时变量不等于-1,提前返回true i = _this.indexOf(key); //检索到字符串下标位置 }); if(i == -1) { //如果i等于-1,返回false,说明没有检测到特殊字符 return false; } else { //如果i不等于-1,返回true,说明检测到特殊字符 return true; } }
下面应用 String 类型的扩展方法 check() 来检测字符串中是否包含特殊字符尖角号,以判断字符串中是否存在 HTML 标签。
var s = '<script language="javascript" type="text/javascript">'; //定义字符串直接量 var b = s.filter("<",">"); //调用String扩展方法,检测字符串 console.log(b); //返回true,说明存在 "<"或">" ,即存在标签由于 Array 的原型方法 forEach() 能够多层迭代数组,,所以可以以数组的形式传递参数。
var s = '<script language="javascript" type="text/javascript">'; var a = ["<", ">", "\"","\'","\/","\;","\|"]; var b = s.check(a); console.log(b);把特殊字符存储在数组中,这样更方便管理和引用。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频