javascript - 涉及大写字母时,JavaScript 不删除文本
问题描述
所以我在我的网站上有一个文本框,我对此进行了编码以防止使用某些单词。
window.onload = function() {
var banned = ['MMM', 'XXX'];
document.getElementById('input_1_17').addEventListener('keyup', function(e) {
var text = document.getElementById('input_1_17').value;
for (var x = 0; x < banned.length; x++) {
if (text.toLowerCase().search(banned[x]) !== -1) {
alert(banned[x] + ' is not allowed!');
}
var regExp = new RegExp(banned[x]);
text = text.replace(regExp, '');
}
document.getElementById('input_1_17').value = text;
}, false);
}
当输入的所有字母都是小写时,该代码完美地工作并从文本框中删除文本。问题是当文本包含大写字母时,它会给出错误,但不会从文本框中删除该单词。
解决方案
这RegExp
是一个很好的方向,只是你需要一些标志(使其i
区分大小写和g
全局 - 所以替换所有出现的地方):
var text="Under the xxx\nUnder the XXx\nDarling it's MMM\nDown where it's mmM\nTake it from me";
console.log("Obscene:",text);
var banned=["XXX","MMM"];
banned.forEach(nastiness=>{
text=text.replace(new RegExp(nastiness,"gi"),"");
});
console.log("Okay:",text);
推荐阅读
- python - 如何根据两个不同列表中的相应值创建 if 语句?
- kubernetes - Helm configmap error Error: UPGRADE FAILED: ConfigMap "my-service.v130" is invalid: data: Too long: must have at most 1048576 characters
- automation - ansible多维数组
- npm - sudo 命令允许成功创建反应应用程序,但我的用户已经拥有管理员访问权限
- javascript - 随着子元素的增加,如何增加父元素?
- python - 由于使用 PyArray_ENABLEFLAGS 导致 Jupyter 崩溃
- r - 如何将此嵌套的重复 json 对象解码为数据帧
- python - 根据差异对列表中最近的元素进行分组
- spring-boot - 如何将 Spring-Boot Web 服务转换为 Docker 映像?
- php - 我怎样才能摆脱这个错误解析错误:语法错误,意外'=>'(T_DOUBLE_ARROW)