*/ ?>

改行コード入りの文字列群を

タグの段落フォーマットに変換する正規表現

こうする。

const formatContent = (content: string): string => {
  return content
    .replace(/(([^\r\n]+(\r?\n)?)+)/gim, "<p>$1</p>")
    .replaceAll(/\r?\n([^<])/gim, "<br />$1")
}

これは外部ユーザーによって投稿されたコメントを整形するために書いたのだけど、その中でリンク文字列を自動的に a タグ変換したかったので下記も追加した。

const formatContent = (content: string): string => {
  return content
    .replace(/(([^\r\n]+(\r?\n)?)+)/gim, "<p>$1</p>")
    .replaceAll(/\r?\n([^<])/gim, "<br />$1")
    // 下記を追加
    .replaceAll(
      /((<p>)|<br \/>)?(https?:\/\/[\w\/:;%#\$&\?\(\)~\.=\+\-]+)(\r?\n)?((<\/p>)|<br \/>)/gim,
      '$1<a href="$3" rel="nofollow ugc">$3</a>$5'
    )
}
0
0
234
0

Warning: Attempt to read property "like_count" on null in /home/c2485919/public_html/mirumi.in/wp-content/themes/cocoon-child-master/endpoints.php on line 820
0
みるみ
Follow Me!
みるみみるめも筆者

ブロガー、エンジニア。

詳しいプロフィールはこのページで色々書いてます。もやってます。

みるめも
1
コメントが正常に送信されました。承認されるまで表示されませんので二重投稿なさらないようご注意ください。