c语言过滤特殊字符,JS在接收表单数据时过滤特殊字符

在接收表单数据时,经常需要检测特殊字符,过滤敏感词汇。本例为 String 扩展一个原型方法 filter(),用来检测字符串中是否包含指定的特殊字符。

定义 filter() 的参数为任意长度和个数的特殊字符列表,检测的返回结果为布尔值。如果检测到任意指定的特殊字符,则返回 true,否则返回 false。

//检测特殊字符,蚕食为特殊字符列表,返回true表示存在,否则不存在

String.prototype.filter = function () {

if (arguments.length < 1) throw new Error("缺少参数"); //如果没有参数,则抛出异常

var a = [], _this = this; //定义空数组,把字符串存储在内部变量中

for (var i = 0; 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 = '

var b = s.filter("<",">"); //调用String扩展方法,检测字符串

console.log(b); //返回true,说明存在 "<"或">" ,即存在标签

由于 Array 的原型方法 forEach() 能够多层迭代数组,,所以可以以数组的形式传递参数。

var s = '

var a = ["<", ">", "\"","\'","\/","\;","\|"];

var b = s.check(a);

console.log(b);

把特殊字符存储在数组中,这样更方便管理和引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值