首页 > 解决方案 > 删除txt文件中某个字符后的所有内容

问题描述

你好,我是编码新手,我需要你的帮助,我试图过滤一个 txt 文件并以我喜欢的格式制作一个列表

这是原始 txt 文件的样子:

pepitbeng:davy141089 | LV: 5 | BE: 1017 | RP: 400 | Refunds: 3 | Champs: 1 | Skins: 0 | Email Verified: true | Lastplay: Error
korvin918:M5al3elu2z6k | LV: 41 | BE: 2065 | RP: 23 | Refunds: 1 | Champs: 57 | Skins: 23 | Email Verified: true | Lastplay: 1/11/2019 7:02:15 PM
monkeyshadowtms:apolo2002 | LV: 21 | BE: 6795 | RP: 0 | Refunds: 3 | Champs: 10 | Skins: 0 | Email Verified: true | Lastplay: 7/25/2019 5:00:15 PM

并且有成千上万的

我喜欢做的是逐行删除空格后的所有内容,因此只剩下ID和密码,最终结果将如下所示

pepitbeng:davy141089
korvin918:M5al3elu2z6k
monkeyshadowtms:apolo2002

我尝试了一些东西,但只能获得第一线,

var fs = require('fs');
var textByLine = fs.readFileSync('1.txt').toString().split(" ");

console.log(textByLine[0]);

这样我可以得到 pepitbeng:davy141089 但无法进入第二行,因为所有内容都在它们之后被删除,所以我怎么能得到每行的 0 数组

我也试试这个

var fs = require('fs');
var textByLine = fs.readFileSync('1.txt').toString().split("\n");

console.log(textByLine[0]);

这样我可以逐行获取上述代码的全部结果

pepitbeng:davy141089 | LV: 5 | BE: 1017 | RP: 400 | Refunds: 3 | Champs: 1 | Skins: 0 | Email Verified: true | Lastplay: Error

我觉得我应该使用 forEach() 函数,但我不知道如何实现,等待您的回复谢谢。

抱歉打扰我设法解决

var fs = require('fs');
var textByLine = fs.readFileSync('1.txt').toString().split("\n");

console.log(textByLine[0].split(" ")[0]);

希望能帮助别人

标签: javascriptjqueryfiltering

解决方案


您可以使用正则表达式来匹配行首的非空格:

var fs = require('fs');
var lines = fs.readFileSync('1.txt')
  .toString()
  .split("\n")
  .map(line => line.match(/\S*/)[0]);

\S匹配一个非空格字符,并且*中继器尽可能多地匹配一行中的这些字符。

const text = `pepitbeng:davy141089 | LV: 5 | BE: 1017 | RP: 400 | Refunds: 3 | Champs: 1 | Skins: 0 | Email Verified: true | Lastplay: Error
korvin918:M5al3elu2z6k | LV: 41 | BE: 2065 | RP: 23 | Refunds: 1 | Champs: 57 | Skins: 23 | Email Verified: true | Lastplay: 1/11/2019 7:02:15 PM
monkeyshadowtms:apolo2002 | LV: 21 | BE: 6795 | RP: 0 | Refunds: 3 | Champs: 10 | Skins: 0 | Email Verified: true | Lastplay: 7/25/2019 5:00:15 PM`;
var lines = text
  .split("\n")
  .map(line => line.match(/\S*/)[0]);
console.log(lines);

如果您的输出需要改为字符串,则将空格后面的所有内容替换为空字符串:

const text = `pepitbeng:davy141089 | LV: 5 | BE: 1017 | RP: 400 | Refunds: 3 | Champs: 1 | Skins: 0 | Email Verified: true | Lastplay: Error
korvin918:M5al3elu2z6k | LV: 41 | BE: 2065 | RP: 23 | Refunds: 1 | Champs: 57 | Skins: 23 | Email Verified: true | Lastplay: 1/11/2019 7:02:15 PM
monkeyshadowtms:apolo2002 | LV: 21 | BE: 6795 | RP: 0 | Refunds: 3 | Champs: 10 | Skins: 0 | Email Verified: true | Lastplay: 7/25/2019 5:00:15 PM`;
const newText = text.replace(/ .*/g, '');
console.log(newText);


推荐阅读