前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序中敏感词过滤——前端实现

小程序中敏感词过滤——前端实现

作者头像
连胜
发布2018-06-06 11:50:35
8.3K0
发布2018-06-06 11:50:35
举报

知晓程序员,专注小程序开发的程序员!

小程序内容如果含有淫秽色情、涉违法犯罪、涉政有害等不良信息,将会被微信强制下架小程序。

因此,微信官方也推出了内容安全接口,文档地址: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请求,体验稍微好一些~

《完》

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知晓程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档