javascript - 如何使用reactjs突出显示texarea文本中最常见的字符?
问题描述
我们如何突出显示重复次数最多的字符,例如文本中最常见的 5 个字符。这是用于计算文本区域中每个字符的代码。
import React, { useState, useMemo } from "react";
const removeSpace = (text) => text.replace(/\s/g, "");
function Home() {
const [text, setText] = useState("");
const eachCharResult = useMemo(() => {
let result = {};
let textWithoutSpace = removeSpace(text);
for (let i = 0; i < textWithoutSpace.length; i++) {
if (result[textWithoutSpace[i]]) result[textWithoutSpace[i]]++;
else result[textWithoutSpace[i]] = 1;
}
return result;
}, [text]);
return (
<div>
<form>
<h3>Please enter text</h3>
<textarea
onChange={(e) => setText(e.target.value)}
placeholder="start typing"
></textarea>
<p>Total number of character :{removeSpace(text).length}</p>
</form>
{Object.keys(eachCharResult).map((el, i) => (
<p key={i}>{`${el}: ${eachCharResult[el]}`}</p>
))}
</div>
);
}
export default Home;
我想突出显示文本中重复频率最高的文本,例如图像t
中的重复5
次数,然后是 s e o i
. 将它们显示为most repeated character
并显示总数t s e o i
解决方案
推荐阅读
- java - 设计 restful API 路径 - 用于返回过滤的资源和返回资源的修剪属性
- elasticsearch - 如何处理 ElasticSearch 中的空字段名称?
- html - 我们可以在 HTML 的元标记中使用“UTF-16”吗?
- javascript - 如何在 javascript 中将 1,800.00 转换为 1800?
- oracle - Oracle PL/SQL 版本 12.2.0.1.0 与 12.1.0.2.0 - 使用参数立即执行
- sql - 如何在 bigquery 中创建 Delta
- javascript - 如何在AngularJS的网格中迭代多个下拉列表以获取所选值
- javascript - 带有定义变量的jquery加载
- javascript - 使用javascript获取数组对象内具有两个相同属性值的项目的总和
- angular - 如何禁用角度材料中的动画