정규 표현식을 사용하여 사용자 생성 콘텐츠 필터링

민감한 단어를 포함하는 sensitiveWords 배열을 만듭니다  .

_sendCommentHandle함수 에서 filterSensitiveWords함수를 사용하여 필터링content(需要过滤的内容)

프로젝트에서 filter.js라는 파일을 만들고 다음 코드를 추가합니다.

//敏感词库:
const sensitiveWords = ['badword1', 'badword2', 'badword3'];
//创建过滤函数:
function filterSensitiveWords(text, sensitiveWords) {
  const regexStr = sensitiveWords.map(word => `\\b${word}(s|es)?`).join("|");
  const regex = new RegExp(regexStr, "gi");
  return text.replace(regex, (match, p1) => {
    return p1 ? "***" + p1 : "***";
  });
}

export default {
  sensitiveWords,
  filterSensitiveWords,
};

수입:

import filter from '@/filter';

필터링 시작:

content:需要过滤的内容,

filteredContent:过滤之后的内容

const filteredContent = filter.filterSensitiveWords(content, filter.sensitiveWords);

금지 단어가 있는지 판단해야 하는 경우 includes()기능을 사용하여 filteredContent"***"(민감한 단어를 나타냄)가 포함되어 있는지 확인하고 다음 코드를 계속 추가할 수 있습니다.

const hasSensitiveWord = this.filteredContent.includes("***");

그냥 판단 hasSensitiveWord 

추천

출처blog.csdn.net/weixin_44523517/article/details/130026091