JavaScriptで文章を処理するメモ
自分用。適当に追記。
もくじ
改行コードを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行ずつ出力するスクリプト
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