Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 使用node.js更改文件_Javascript_Node.js_Filesystems_Fs - Fatal编程技术网

Javascript 使用node.js更改文件

Javascript 使用node.js更改文件,javascript,node.js,filesystems,fs,Javascript,Node.js,Filesystems,Fs,我有一个如下所示的文本文件: ./4F6cFLnAAFc.png ./4Flj9plmKGQ.png ./4fQeHtSdw80.png ./4I9iibPLdBw.png ./4J-dRA3MGc8.png ./4mdEsouIXGM.png ./4-_-wQc3EGE.png ./595Tiga1gIg.png ./60u_ctp6UIw.png ./64bH_27Ehoc.png ./64_ZfIemRGM.png ./66pQLO--Ghk.png ./69rDtSpshAw.png .

我有一个如下所示的文本文件:

./4F6cFLnAAFc.png
./4Flj9plmKGQ.png
./4fQeHtSdw80.png
./4I9iibPLdBw.png
./4J-dRA3MGc8.png
./4mdEsouIXGM.png
./4-_-wQc3EGE.png
./595Tiga1gIg.png
./60u_ctp6UIw.png
./64bH_27Ehoc.png
./64_ZfIemRGM.png
./66pQLO--Ghk.png
./69rDtSpshAw.png
./69-YUSazuic.png
我想使用node.js将每行开头的
替换为'myString'。因此,每一个最终看起来都像:
myString/4F6cFLnAAFc.png

我试图使用正则表达式,但我怀疑它可以通过读写流来实现

var fs = require('fs');

fs.readFile('filelist.txt', 'utf-8', function(err, data){
    if (err) throw err;

    console.log(typeof(data)); // string

    data.replace(/\.\/+/, 'myString');

});

什么正则表达式可以工作,或者使用node编辑此文件的最佳方式是什么?

此正则表达式应该可以工作:
/^\(.+)/gm

它对以句点(
^\.
)开头的所有行执行全局多行匹配(
/gm
),捕获句点(
(.+)
)之后的任何内容,并使用与捕获的值(
$1
)串联的“myString”替换整个字符串


根据需要,这里有两个同步或异步选项

var fs = require('fs');

function readWriteAsync() {
  fs.readFile('filelist.txt', 'utf-8', function(err, data){
    if (err) throw err;

    var newValue = data.replace(/^\./gim, 'myString');

    fs.writeFile('filelistAsync.txt', newValue, 'utf-8', function (err) {
      if (err) throw err;
      console.log('filelistAsync complete');
    });
  });
}

function readWriteSync() {
  var data = fs.readFileSync('filelist.txt', 'utf-8');

  var newValue = data.replace(/^\./gim, 'myString');

  fs.writeFileSync('filelistSync.txt', newValue, 'utf-8');

  console.log('readFileSync complete');
}

readWriteAsync();
readWriteSync();

先生,它只替换第一个字符串,我想替换全部(replaceAll()不工作)。。。
var fs = require('fs');

function readWriteAsync() {
  fs.readFile('filelist.txt', 'utf-8', function(err, data){
    if (err) throw err;

    var newValue = data.replace(/^\./gim, 'myString');

    fs.writeFile('filelistAsync.txt', newValue, 'utf-8', function (err) {
      if (err) throw err;
      console.log('filelistAsync complete');
    });
  });
}

function readWriteSync() {
  var data = fs.readFileSync('filelist.txt', 'utf-8');

  var newValue = data.replace(/^\./gim, 'myString');

  fs.writeFileSync('filelistSync.txt', newValue, 'utf-8');

  console.log('readFileSync complete');
}

readWriteAsync();
readWriteSync();