あのぞんブログ

js の trim で前後の改行のみ取り除く(空白は保持する)

2020-08-17

複数行テキストの trim で行頭の空白を消されたくない時があったので、前後の改行のみ消す方法を紹介します。

方法

コード

const trimLine = (text: string) => text.replace(/^\n*|\n*$/g, '')

サンプル

Repl.it - trim-only

const text = `

  <- keep space ->   
keep double newline


  <- keep space ->   


`

const trimKeepWhite = (text) => text.replace(/^\n*|\n*$/g, '')

const res1 = text.trim()
const res2 = trimKeepWhite(text)

const wrapLines = (text) =>
  text
    .split('\n')
    .map((l) => `|${l}|`)
    .join('\n')

console.log('trim')
console.log(wrapLines(res1))

console.log()
console.log('trim without whitespace')
console.log(wrapLines(res2))

動作

trim 空白も削除されます。
|<- keep space ->   |
|keep double newline|
||
||
|  <- keep space ->|

trim without whitespace 空白は保持しています。
|  <- keep space ->   |
|keep double newline|
||
||
|  <- keep space ->   |

anozon JavaScript とアニメ好き Web エンジニア。Twitter

© 2020 あのぞんびより All Rights Reserved