Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换为JS中的正则表达式_Javascript_Node.js - Fatal编程技术网

Javascript 替换为JS中的正则表达式

Javascript 替换为JS中的正则表达式,javascript,node.js,Javascript,Node.js,我有一个由多个下划线组成的文件。我需要将它们全部转换为单下划线 如何在节点中执行此操作 我当前的解决方案: var fs = require("fs"); filename = "questions.txt"; ofilename = "o.txt"; fs.readFile(filename, "utf8", function (err, data) { if (err) { return consol

我有一个由多个下划线组成的文件。我需要将它们全部转换为单下划线

如何在节点中执行此操作

我当前的解决方案:

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);
  });
});

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

您的代码运行良好

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);
  });
});
  • 产生:
  • 发件人:

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

当我运行itI时,输出是这样的,我不确定输入文件是否是utf8。它只是一个txt文件。我还可以使用什么其他格式?显示您的输入文件编码(在ide的右下角),上面写着utf16leSo单击它,选择“使用编码保存”并选择“utf8”,假设您使用的是VSCODE,您可以在不使用JS的情况下执行此操作,在terminal
sed's/\uuu*/\ ug/questions.txt中使用
sed
保存到文件
sed's/\u*/\ ug/test.txt>o.txt
-i
修改文件
sed-i's/\u*/\ ug/test.txt
@JacekRojek抱歉,这可能是一个编码问题。这在utf16上给了我同样的结果。但在更改为utf8时,一切都正常。
toto

_
_
rr
toto

__
__
rr