为文本文件中的每个项添加引号

时间:2016-09-05 04:11:58

标签: javascript json node.js

我想使用this list of bad words进行输入过滤。它现在是一个简单的列表,但我需要将其转换为JSON以供我的服务器使用。

我不想浏览每一行并添加引号和,。是否有正则表达式或快速方式将" ",添加到txt文件中的每一行?

这样:

2g1c
2 girls 1 cup
acrotomophilia
alabama hot pocket
alaskan pipeline

变为

"2g1c",
"2 girls 1 cup",
"acrotomophilia",
"alabama hot pocket",
"alaskan pipeline",
...

4 个答案:

答案 0 :(得分:1)

您所要做的就是在新行中拆分字符串并删除数组中的最后一项(因为它是空的)。

var txt = '2g1c\n2 girls 1 cup\nacrotomophilia\nalabama hot pocket\nalaskan pipeline\n';
var array = txt.split('\n').slice(0, -1);


console.log(array)

然后,您可以使用Array.prototype.some作为谓词方法,以确定给定字符串是否包含一个或多个列入黑名单的单词。

var txt = '2g1c\n2 girls 1 cup\nacrotomophilia\nalabama hot pocket\nalaskan pipeline\n';
var array = txt.split('\n').slice(0, -1);

var input1 = 'not bad';
var input2 = 'An alaskan pipeline is quite creative...';

var input1HasBadWords = array.some(function (word) {
  return input1.indexOf(word) > -1;
});

var input2HasBadWords = array.some(function (word) {
  return input2.indexOf(word) > -1;
});

console.log('input1 is: ' + input1HasBadWords);
console.log('input2 is: ' + input2HasBadWords);

你的控制器看起来像这样:

const fs = require('fs');

app.post('/route', (req, res) => {
  fs.readFile('/etc/hosts', 'utf8', (err, data) => {
    if (err) {
      res.sendStatus(500);
    }

    const badWords = data.split('\n').slice(0, -1);
    const hasBadWords = badWords.some((word) => {
       return req.body.input.indexOf(word) > -1;
    });

    if(hasBadWords) {
      res.send('Dirty mouth? Clean it with orbit!');
    } else {
      res.send('You are very polite');
    }
  });
});

答案 1 :(得分:1)

使用反引号 `

var txt=`2g1c
2 girls 1 cup
acrotomophilia
alabama hot pocket
alaskan pipeline`;

var arrayUntrimmed = txt.split("\n");

var array=arrayUntrimmed.map(function(a){return a.trim()});

(注意:Firefox 34和Chrome 41支持此ECMAScript 6功能)

答案 2 :(得分:0)

http://pastebin.com/U5phzWUM

我想最简单的方法就是使用软件。使用SublimeText

我花了30秒

http://www.sublimetext.com/docs/selection

答案 3 :(得分:0)

您可以使用readline模块。阅读并在每一行中添加引号。

readline:https://nodejs.org/api/readline.html