テキストエリアにペーストした文字列に以下の変更を加えDIVに表示するJavaScriptプログラムを作成してください。

import React, { useState, useRef } from 'react';
import { Button } from '@/components/ui/button';
import { Textarea } from '@/components/ui/textarea';

const TextTransformer = () => {
  const [transformedText, setTransformedText] = useState('');
  const textDivRef = useRef(null);

  // 口語体から文語体への変換マップ
  const conversionalToLiterary = {
    'だ': 'なり',
    'です': 'なり',
    'ます': 'き',
    'る': 'り',
    'たい': 'たし',
    'いる': 'をり',
    'てる': 'てをり',
    'けど': 'しかども',
    'から': 'に由りて',
    'ので': 'に因りて',
    'けれど': 'しかれども',
    'でも': 'しかしながら',
    'もう': 'すでに'
  };

  const transformText = (text) => {
    // 口語体から文語体への変換
    Object.entries(conversionalToLiterary).forEach(([spoken, literary]) => {
      text = text.replace(new RegExp(spoken, 'g'), literary);
    });

    // 読点の後の改行を削除
    text = text.replace(/、\\\\n/g, '、');

    // 句点の後に改行を追加し、意味段落の終わりにさらに改行を入れる
    text = text.replace(/。/g, '。\\\\n\\\\n');

    // 最後の余分な改行を削除
    text = text.trim();

    return text;
  };

  const handleTextTransform = (e) => {
    const inputText = e.target.value;
    const transformed = transformText(inputText);
    setTransformedText(transformed);
  };

  const copyToClipboard = () => {
    if (textDivRef.current) {
      navigator.clipboard.writeText(textDivRef.current.innerText)
        .then(() => alert('クリップボードにコピーしました'))
        .catch(err => console.error('コピーに失敗しました', err));
    }
  };

  return (
    <div className="p-4 max-w-2xl mx-auto">
      <h2 className="text-xl font-bold mb-4">日本語テキスト変換ツール</h2>

      <Textarea
        placeholder="変換したいテキストをここにペーストしてください"
        onChange={handleTextTransform}
        className="mb-4"
      />

      <Button
        onClick={copyToClipboard}
        className="mb-4"
      >
        変換テキストをコピー
      </Button>

      <div
        ref={textDivRef}
        className="border p-4 whitespace-pre-wrap bg-gray-50"
      >
        {transformedText}
      </div>
    </div>
  );
};

export default TextTransformer;

このReactコンポーネントは、以下の機能を持つ日本語テキスト変換ツールです:

  1. テキストエリアに入力された文字列を変換
  2. 口語体から文語体への変換
  3. 読点の後の改行削除
  4. 句点の後に改行を追加
  5. 意味段落の終わりに追加の改行を挿入
  6. クリップボードにコピーするボタン

変換のポイント:

使用上の注意:

カスタマイズや追加の変換ルールが必要な場合は、conversionalToLiteraryオブジェクトやtransformText関数を修正することで対応できます。