知晓程序员,专注小程序开发的程序员!
小程序内容如果含有淫秽色情、涉违法犯罪、涉政有害等不良信息,将会被微信强制下架小程序。
因此,微信官方也推出了内容安全接口,文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/msgSecCheck.html
在些之前,有些开发者也使用过第三方的内容安全接口,比如网易易盾、阿里云内容检测API、百度AI内容审核,这些都是收费的,主要针对企业用户。
因此,官方推出此内容安全接口后,算是对开发者的一种福利。
官方提供的安全接口,是需要调用服务端的API,检测完成再返回结果。如果页面的表单内容很多,每次都请求API就不合理了。能否直接在前端就做个简单检验呢?
连胜老师介绍一种前端处理敏感词的方法:替换相关敏感词为**
把一些基本的敏感词放在前端校验,一些疑似或者有语义的词再去用官方API检测。
直接看代码:
function hasSensitiveWords(str) {
if(str == '' || str == undefined) return false;
var words = '台独,藏独'; // 常用敏感词,请自己添加
var array = words.split(','), len = array.length;
for (var i = 0; i < len; i++) {
var item = array[i];
if (str.indexOf(item) >= 0 && item != '') {
return item;
}
}
return false;
}
function replaceAll(oldStr, reStr) {
var len = reStr.length, starStr = '';
for (var i = 0; i < len; i++) {
starStr += '*';
}
return oldStr.replace(new RegExp(reStr, "gm"), starStr);
}
js判断:
var titleStr = util.hasSensitiveWords(this.data.title);
if (titleStr) {
util.showModelTips('标题包含敏感词,已经自动处理为*,请重新编辑');
this.setData({
title: util.replaceAll(this.data.title, titleStr),
titleDefault: util.replaceAll(this.data.title, titleStr),
});
return;
}
当用户输入了相关敏感词后,前端可以做个简单处理,把常用敏感词替换成**。减少了一部分API请求,体验稍微好一些~
《完》