JavaScript | |

JavaScriptで文章を処理するメモ

自分用。適当に追記。

  1. 改行コードをLFに統一
  2. 改行コードを <br> に置換
  3. 空行を消す
  4. 全行を trim()
  5. 連続する全ての空白文字を1つの半角スペースに置換
  6. テキストファイルを1行ずつ読み込んで何か出力

改行コードをLFに統一

`あああ
いいい
ううう`.replace(/\r\n?/g, '\n');

改行コードを <br> に置換

改行コードがLF前提です

`あああ
いいい
ううう`.replace(/\n/g, '<br>');
// "あああ<br>いいい<br>ううう"

空行を消す

改行コードがLF前提です

`あああ

いいい

ううう`.split('\n').filter(l => l !== '').join('\n');
// "あああ
// いいい
// ううう"

正規表現でもできます。m は複数行検索のフラグです。

`あああ

いいい

ううう`.replace(/^\n/gm, '');

全行を trim()

最初の trim が無いと、最初と最後の改行が消えません

`
 あああ
 いいい
  ううう
`.trim().split('\n').map(l => l.trim()).join('\n');
// "あああ
// いいい
// ううう"

連続する全ての空白文字を1つの半角スペースに置換

`あ   あ 
あ		あ
	あ`.replace(/\s+/g, ' ');
// "あ あ あ あ あ"

テキストファイルを1行ずつ読み込んで何か出力

標準出力をファイルに保存するのが手軽

以下はスクリプトと同じディレクトリの input.txt を読み込んで1行ずつ出力するスクリプト

index.js
const fs = require('fs');
const path = require('path');

const content = fs.readFileSync(path.resolve(__dirname, 'input.txt'), { encoding: 'utf8' });
const lines = content.replace(/\r\n?/g, '\n').split('\n');

for (let i = 0, len = lines.length; i < len; ++i) {
  const line = lines[i];
  console.log(`${i}: ${line}`);
}
こうやって実行
node index.js > output.txt