【发布时间】:2012-09-05 10:59:09
【问题描述】:
标题可能有点误导;我的拼写检查器更关注格式而不是拼写(大写字母、标点符号和空格、撇号、将互联网俚语转换为完整单词、经常打乱的单词等)。但是,基本原则适用。
基本上,我正在构建的 JS/jQuery 检查器会在输入单词时纠正它们(在单词后输入空格或标点符号之后)。
但是,就像任何自动更正一样,它必然会出错。我什至没有考虑创建功能来确定“它”或“它的”在给定情况下是否更合适(尽管如果存在这样的插件或代码 sn-p,请给我指出一个)。
所以我想让它成为一个“屈服”的自动更正(因为缺乏更好的名字的知识)。基本上;
- 用户键入一个会触发检查器的单词,然后键入一个 空间。
- 检查员更正单词。
- 用户认为这是一个错误 并将其改正(通过将整个单词或部分单词退格, 或突出显示它,或者他们觉得编辑它很舒服)。
- 该 用户继续输入,检查器不会再次触摸该单词的该实例。
现在最简单的当然是完全禁用对该单词的检查,但我希望检查器能够更正它的未来实例。我正在寻找的是检测用户将自动更正的单词(无论是在键入之后还是之后)编辑回自动更正之前的状态,然后学会不理会该单词的特定实例。
我什至不知道从哪里开始。我正在考虑一个 contenteditable,每个单词都包含在一个 span 中,自动更正的单词具有特殊的类和包含原始单词的 data-* 属性,监听自动更正单词的编辑,如果它被编辑回等于 data-*值,添加一个类,使其不参与未来的自动更正轮次。
我认为这可能是不必要的复杂,或者至少不是阻力最小的路径。这样做最聪明的方法是什么?
【问题讨论】:
-
你的方法对我来说似乎很好。您是否在寻找内容可编辑的替代方案,或者是什么让您怀疑?
-
我总是怀疑自己的处理方法。似乎跟踪这些跨度,尤其是在中间编辑或删除内容时,可能会变得混乱。
-
对于它的价值,当我的打字为我自动更正时,我不感激。是的,手动修复我拼错的东西很麻烦,但自动更正常常与我的意图不符,直到我离开几个字时我才注意到(因为我以 90 wpm+ 的速度触摸打字) .这个系统对我来说太烦人了。最好让我看到有问题并评估。
-
@ErikE 完全同意,这个系统并不适合所有人,禁用它的选项是必须的。这让我想起了您可以输入的不同方式,例如,在文本编辑器中输入日语文本:您可以在平假名中键入每个单词,将其转换为汉字,然后移动到下一个单词,重复;或者您在平假名中键入整个句子或段落,然后继续快速连续地将其转换为单词。快速打字员确实更喜欢后者,恕我直言,它也适用于拼写检查。
-
正如我所提到的,我本身并不是在构建拼写检查器。我也发现它们的不准确性很烦人,更不用说它是多余的,因为浏览器通常都有自己的内置检查器。我想要做的是修复标点符号、大写字母等方面的错误——语言风格更正通常不符合一个人的意见或偏好,我敢说,自动更正更容易正确。但是,我是自定义的忠实支持者,因此用户可以在自动更正、错误突出显示和什么都没有之间进行选择。
标签: javascript jquery autocorrect