首页 > 解决方案 > 用 JS 中的正则表达式替换

问题描述

我有一个文件,其中包含有多个下划线的地方。我需要将它们全部转换为单个下划线。

我怎样才能在节点中做到这一点?

我目前的解决方案:

var fs = require("fs");
filename = "questions.txt";
ofilename = "o.txt";
fs.readFile(filename, "utf8", function (err, data) {
  if (err) {
    return console.log(err);
  }
  var result = data.replace(/_+/g, "_");

  fs.writeFile(ofilename, result, "utf8", function (err) {
    if (err) return console.log(err);
  });
});

这给了我一个文件,其中所有内容都是二进制文件。

标签: javascriptnode.js

解决方案


您的代码运行良好。

var fs = require("fs");
filename = "./questions.txt";
ofilename = "o.txt";
fs.readFile(filename, "utf8", function (err, data) {
  if (err) {
    return console.log(err);
  }
  console.log(data);
  var result = data.replace(/_+/g, "_");

  fs.writeFile(ofilename, result, "utf8", function (err) {
    if (err) return console.log(err);
  });
});
  • 产生:
toto

_
_
rr
  • 从:
toto

__
__
rr

确保您的输入文件是良好的 utf8 编码。


推荐阅读