过滤并替换敏感词js
时间: 2023-08-22 22:05:55 浏览: 73
您好!过滤并替换敏感词可以通过 JavaScript 编写正则表达式来实现。以下是一个简单的示例:
```javascript
const sensitiveWords = ['敏感词1', '敏感词2', '敏感词3'];
const text = '这篇文章包含敏感词1和敏感词2';
const regex = new RegExp(sensitiveWords.join('|'), 'gi');
const filteredText = text.replace(regex, '***');
console.log(filteredText); // 输出:这篇文章包含***和***
```
在上面的示例中,我们首先定义了一个包含敏感词的数组 `sensitiveWords` 和一个包含敏感词的文本 `text`。然后,我们使用 `join()` 方法将敏感词数组转换为一个以管道符(|)分隔的字符串,创建一个正则表达式对象,并使用 `replace()` 方法将所有匹配的敏感词替换为三个星号(***)。
当然,这只是一个简单的示例,实际中可能需要更复杂的正则表达式来过滤和替换敏感词。此外,还需要注意敏感词的匹配大小写问题,以及文本中可能包含敏感词的子串等情况。
相关问题
JS封装过滤敏感词函数
好的,我可以帮你讲一下如何封装过滤敏感词的函数。首先,我们需要一个敏感词库,可以将敏感词存储在一个数组中。
然后,我们可以封装一个函数,接收两个参数:待过滤的文本和敏感词库。函数内部可以使用正则表达式将敏感词替换为*号或者其他符号。
这是一个简单的示例代码:
```javascript
function filterSensitiveWords(text, sensitiveWords) {
for (let word of sensitiveWords) {
const reg = new RegExp(word, 'gi');
text = text.replace(reg, '*'.repeat(word.length));
}
return text;
}
const sensitiveWords = ['敏感词1', '敏感词2', '敏感词3'];
const text = '这是一段包含敏感词的文本,敏感词1和敏感词2都被过滤了。';
const filteredText = filterSensitiveWords(text, sensitiveWords);
console.log(filteredText);
```
输出结果为:
```
这是一段包含***的文本,***和***都被过滤了。
```
当然,这只是一个非常简单的示例,实际上过滤敏感词还涉及到很多细节问题,比如敏感词的替换方式、大小写敏感等等,需要根据具体需求进行调整。
请封装一个过滤敏感词的函数 js
好的,以下是一个简单的过滤敏感词的 JavaScript 函数:
```
function filterSensitiveWords(str) {
const sensitiveWords = ["敏感词1", "敏感词2", "敏感词3"]; // 这里可以添加更多敏感词,可以从后端获取
let filteredStr = str;
for (let i = 0; i < sensitiveWords.length; i++) {
const re = new RegExp(sensitiveWords[i], "g"); // 使用正则表达式进行全局匹配
filteredStr = filteredStr.replace(re, "***"); // 将敏感词替换为星号
}
return filteredStr;
}
```
该函数使用一个敏感词数组,将传入的字符串中所有匹配到的敏感词替换为星号,然后返回替换后的字符串。可以根据需要自行扩展和优化。