【質問の背景】
現在文字数のカウントをできるアプリを作成しています。
その中で、textarea内の見出し(## で始まるもの)のみ、色を変えたいのですが、解決方法が分からず質問させていただきました。
【現状】
正規表現を使い、見出し部分の抽出はできていますが、抽出したもののみ色を変える方法が分からない状況です。例えば、hello world!!の部分は、黒文字のまま。見出しをグリーンにしたいというイメージです。
React
1export default function Form({ text, setText }) { 2 3 const handleTitlesColor = () => { 4 let titles = text.match(/^#+ .+/gm); 5 //マッチしたものは,"text-green-400"、それ以外は"text-black"とする処理 6 }; 7 return ( 8 <div className="w-full p-3"> 9 <textarea 10 id="countForm" 11 className={ 12 "w-full bg-white h-5/6 p-3 outline-none " + handleTitlesColor() 13 } 14 onChange={(e) => setText(e.target.value)} 15 value={text} 16 /> 17 </div> 18 ); 19}
【自分の考え】
正規表現でマッチしたものをmapで取り出すことはできる。
しかし、その取り出したものにのみスタイルを当てるはどうすれば良いのか分からない。
React
1let titles = text.match(/^#+ .+/gm) 2→マッチする見出しが配列で返ってくる 3 4let colorTitle = titles.map((title)=>....) 5→配列から要素を取り出す
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。