首页 > 解决方案 > 用文本区域中更漂亮的 Unicode 替代品替换数学符号

问题描述

我有一个 textarea HTML 元素,用户可以在其中输入数学表达式,例如2 * 5or 3^2 - 14(具体来说是 React 应用程序)。我想替换符号/表达式,例如*,^2或者pi用它们更漂亮的 Unicode 替代品:×, ², π.

显然,表达式解析器需要理解替代符号,但这很容易做到。

问题是正确替换它们 - 当您通过String.replace函数修改 textarea 的值时,它会将光标移动到其内容的末尾。虽然可以这样做(请参阅update textarea value, but keep cursor position),但它需要大量代码(或者至少这是我目前所看到的)。

有没有更好的方法来实现这个目标?我正在考虑修改字体,以便在用户键入*时显示×- 这种策略绝对不适用于类似的东西pi => π,我不确定它是否可能。我使用的字体是 Menlo。

标签: javascripthtmlreactjsreplace

解决方案


推荐阅读