由于某种原因,我正试图制作一个自动文件修改脚本,但我被卡在了什么东西上。
我下面有源代码:
const fs = require('fs');
var str = fs.readFileSync("./premaplist.txt");
str = str.toString().split("\n");
var result = "";
str.forEach(s => {
var addstr = s;
if(!s.includes("[")) {
if(s.replace(/[.YBPOKGR#]/g, "") == s)return;
addstr = "##########";
}
result += addstr+'\n';
})
// fs.writeFileSync("./premaplist.txt", result);
console.log(result);
因此,我所期望的结果是让空字符串和包含[
的字符串单独存在,并将其他字符串更改为########################***
,但它也将空字符串替换为###########****
。
文本文件是特殊的吗? 还是我做错了或者遗漏了什么?
输入:
[image#1]
.....B....
..BB..BBB.
.BBBBBBB.B
BBBBBBBBB.
##########
[image#2]
GGGG......
GGGGGG....
GGGGGGG...
GGGGGGG...
GGGGGGGG..
GGGGGGGG..
GGGGGGGG..
GGGGGGGGG.
GGGGGGGGG.
[image#3]
.........K
(这样的其实有上千个)
预期产出:
[image#1]
##########
##########
##########
##########
##########
[image#2]
##########
##########
##########
##########
##########
##########
##########
##########
##########
[image#3]
##########
实际输出:
[image#1]
##########
##########
##########
##########
##########
##########
[image#2]
##########
##########
##########
##########
##########
##########
##########
##########
##########
##########
[image#3]
##########
因为您正在执行返回
,所以当其为空字符串时,结果中不会添加任何内容,因为您正在执行返回
试着这样做
const fs = require('fs');
var str = fs.readFileSync("./premaplist.txt");
str = str.toString().split("\n");
var result = "";
str.forEach(s => {
var addstr = s;
if(!s.includes("[")) {
addstr = s.replace(/[.YBPOKGR#]/g, "") == s ?"":"##########"
}
result += addstr+'\n';
})
// fs.writeFileSync("./premaplist.txt", result);
console.log(result);
住在这里回复。