javascript - 删除txt文件中某个字符后面的所有内容

标签 javascript jquery filtering

你好,我是编码新手,我需要你的帮助,我正在尝试过滤 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]);

希望能帮助别人

最佳答案

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

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

关于javascript - 删除txt文件中某个字符后面的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070956/

相关文章:

Javascript 通过 AJAX 实现 Bootstrap Modal

VBA过滤后选择可见单元格

json - 如何在每个对象都有一个 name 属性的嵌套 JSON 上使用 jq 进行递归?

javascript - 接受自身的加糖 typescript 类构造函数?

javascript - vue数据函数语法

javascript - 在 Express 中使用 res.json 时,替代 fs.readFile 加载 Handlebars 模板

Django:从查询集中删除过滤条件

javascript - 我的新 HTML 元素正在以指数速度创建 WTF Javascript 和 jQuery

javascript - 来自另一个函数的 Jquery 验证

javascript - 当子类 = 3 时,将子类移动到其他类中