一定长度后动态突出显示字符?

Dynamically highlight characters after certain length?

我有以下使用 useState 钩子的基本 React 应用程序,它创建一个文本框并计算用户输入的字符数:

import React, { useState } from 'react';

function App(){

  const [count, setCount] = useState(0); 


  return (
    <div>
      <textarea 
        placeholder="What's happening?" 
        onChange={e => setCount(e.target.value.length)}
      />
      <p>You typed {count} characters</p>
    </div>
  )

}

export default App;

这是结果,没有任何样式:

我现在的问题是,如果输入的字符数大于 30,我想突出显示字符。当用户键入时,如果输入的文本超过 30 个字符,则下一个字符将被突出显示。如果 count 变为 31,则该多出的字符应以红色(或其他颜色)突出显示。

我不知道如何使用 textarea(以及使用 React)实现这一点。

用户将如何完成此操作?

好吧,这是我在 10 分钟内完成的事情,但它确实有效,您可以解决剩下的问题。

还有codeSandBox link

import React, { useState, useRef } from "react";

const App = () => {
  const [charLength, setCharLength] = useState(0);
  const [inputText, setInputText] = useState("");
  const inputEl = useRef(null);

  const maxLength = () => {
    inputEl.current.value = "for something like something something something";
    inputEl.current.setSelectionRange(10, 999);
    inputEl.current.focus();
  };
  return (
    <div className="App">
      <h1>char length: {charLength}</h1>
      <h2>max length: 10</h2>
      <input
        ref={inputEl}
        type="text"
        onChange={(e) => setCharLength(e.target.value.length)}
      />
      <button onClick={() => maxLength()}>Focus the input</button>
    </div>
  );
};

export default App;