javascript - JS:如何删除“垃圾邮件隐形字符”?
问题描述
一些用户充斥着一些绕过正则表达式过滤器的字符。当我将这些字符粘贴到 UTF8 编辑器中时,它们看起来相同(除了洪水版本不能完全选择:似乎插入了一些不可见的字符
而当你切换到 ANSI 编码时,你会清楚地看到 2 个词 liebehomo lâ€iâ€ebâ€ehâ€oâ€mo 的区别
当我将垃圾信息粘贴到开发人员工具中时,我得到
s.length 给出 14 而不是 9 !
所以我的问题是:如何过滤这些包含一些奇怪字符的垃圾邮件?
解决方案
可能就像首先替换任何不可打印的字符一样简单:
string = string.replace(/[^ -~]+/g, "");
document.getElementById('demo').addEventListener('input', function(e) {
e.target.innerHTML = e.target.innerHTML.replace(/[^ -~]+/g, "");
console.log(e.target.innerHTML);
});
<textarea id="demo"></textarea>
推荐阅读
- jmeter - Jmeter - 如何获取所有时间戳的最小值(数组的最小值)
- excel - 数据透视表 - x 轴对数刻度
- module - 我可以在不重新创建 .mod 文件的情况下编译 f90
- python - PageNotFoundError(404) 即使在 url 中指定
- r - 使用图形和数据框跨模块的节点链接
- sulu - ListBuilder 不使用 createInExpression 过滤
- jquery - 使用 node.js 抓取时如何包含换行符和项目符号?
- java - 我没有从下面的代码中得到反转数组的输出
- bpmn - 如何根据流程定义键列出camunda中的所有任务
- c - 仅当未指定函数原型时才将浮点数转换为双精度数