首页 > 解决方案 > 检测 txt 中的 URL

问题描述

我有带有 url 的 txt 文件。如何将此网址分开以在 js 代码中使用它们?我试图用 .split(/\n\t/g)

   let sites = await readFile('./sites.txt');
    sites = sites.split(/\n\t/g);

    await context.overridePermissions(sites, ['notifications']);
    try {
        await context.overridePermissions(sites, ['push']);
    } catch (e) {}

标签: javascriptnode.js

解决方案


有 3 件事你应该注意:

  1. NodeJSfs.readFile不适await用于开箱即用的 / 承诺
  2. fs.readFileBuffer除非指定了编码(例如'utf8'),否则给你一个,而不是一个字符串:
fs.readFile('./sites.txt', 'utf8', callback);
  1. 如果您的文件仅包含 URL(每行一个 url),您可以用换行符分隔(如\n),但您必须记住,不同的平台在文本文件中保存新行的方式不同 - 在 Unix 上它只是\n,在 Windows 上:\r\n.

所以你的代码可能看起来像:

const fs = require('fs');

fs.readFile('./sites.txt', 'utf8', (err, content) => { 
  if (err) {
    console.error(err); 
    return;
  } 
  const urls = content.split('\n');
  // do sth with urls
});

如果你想使用 await 或 promise 模式,你可以例如 promisify fs.readFile

const util = require('util');
const readFile = util.promisify(fs.readFile);

然后在你的异步函数中:

async function getURLs() {
  const content = await readFile('./sites.txt', 'utf8');
  return content.split('\n');
}

推荐阅读