ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ NodeJS ] 비속어 필터링 로직(csv 파일에서 추출)
    카테고리 없음 2022. 11. 13. 13:57
    반응형

     

    fWordsFilter.js

    • global.js 에 추가해준다.
    const fWordsFilter = require('./utils/fWordsFilter');
    const path = require('path');
    const fs = require('fs');
    
    const checkFWords = function (message) {
        const filePath = path.join(__dirname, 'fWordsList.csv');
        var data = fs.readFileSync(filePath, { encoding: 'utf8' });
        var rows = data.split('\n');
        var result = [];
    
        for (let rowIndex in rows) {
            let row = rows[rowIndex].split(',');
    
            if (rowIndex === '0') {
                var columns = row;
            } else {
                var data = ''; // 여기에 데이터를 추가한다.
    
                for (var columnIndex in columns) {
                    // 칼럼 갯수만큼 돌면서 적절한 데이터 추가하기.
                    var column = columns[columnIndex];
                    data = row[columnIndex];
                }
                result.push(data);
            }
        }
    
        let regex;
        let sum = '';
        for (let i = 0; i < result.length; i++) {
            sum = sum + result[i] + '|';
        }
        regex = new RegExp(sum, 'g');
        // console.log('sum :', sum);
        // console.log('regex :', regex);
    
        if (message.match(regex)[0] !== '') {
            return true;
        } else {
            return false;
        }
    };
    
    module.exports = {
        checkFWords,
    };
    
    반응형
Designed by LEO.