用于文本框的 ASP.NET 拼写检查器
一个用于检查文本框中输入的文本的 ASP.NET 拼写检查器。
引言
我在 http://www.bid4binary.com 创建了自己的博客,发现我添加了很多带有拼写错误的的文章,然后不得不返回并稍后修改这些文章(有时只是在我的妻子或朋友指出之后 - 哎哟!)。我真的需要一些可以在发布文章之前检查我的拼写的东西,这样我就可以直接添加它并完成它。
背景
我在网上搜索了很多,发现了很多可以做到这一点的控件,但不幸的是,这些控件非常昂贵(特别是对于南非人来说)。还有一些使用似乎已被删除的 Google API,或者更适合 Windows 应用程序而不是 Web 应用程序的 Microsoft Word API。
然后,我在 CodeProject 上找到了 Vasantha Mohan (list_articles.asp?userid=339887) 的一篇精彩文章 (https://codeproject.org.cn/asp/spell_check.asp),其中描述了如何使用字典文件在 ASP 中检查拼写。这能够为我转换为 ASP.NET 并进行一些更适合我的项目的更改提供一个良好的基础。我没有使用他的方法来插入硬回车符,因为我只是检查文本,而不是格式。此外,我添加了一个增强功能,即如果拼写检查器没有找到合适的建议,用户可以手动键入替代单词,并修改了代码,以便该函数仅搜索以被检查单词的相同字母开头的替代方案 - 从而显着提高了速度。
它并不完美,但效果很好 - 我希望看到的一些进一步的增强功能是某种进度指示器,这样您就可以知道在等待时它在做什么,以及将单词添加到字典文件的能力。
使用代码
可下载的 zip 文件包含五个文件
- dict-large.txt - 包含要检查的单词列表,将其放在与下面的页面相同的目录中。
- TestSpellCheck.aspx - 这是您需要开始的页面,它包含您应该输入要检查拼写错误的文本的文本框。
- TestSpellCheck.aspx.vb - 这里没有什么有用的,只是一个标准的代码隐藏文件。
- SpellSuggest.aspx - 此页面显示不正确的单词,并允许您选择替代方案或手动键入替代方案。
- SpellSuggest.aspx.vb - 这是奇迹发生的地方。
我不会在这里显示任何代码,因为源代码中对代码的注释非常好,并且简单地描述它的功能会更有用。如果您需要任何帮助,请随时与我联系。
在 TestSpellCheck 中,我们获取用户在文本框中输入的文本,删除任何前导或尾随空格,然后打开一个新窗口,将此修剪后的文本作为 URL 参数传递。
在 SpellSuggest 中,我们将文本拆分为单个单词的数组,并根据我们的字典文件检查这些单词。对于当前单词,我们只从我们的字典中加载以相同字母开头的每个单词。然后,我们检查要检查的单词中是否有有效字符,如果没有,则直接跳到下一个;然后我们检查它是否是一个数字,如果是,则跳到下一个;接下来,我们检查它是否是一个有效的单词,如果是,则跳过。
如果到现在我们还没有跳过,那么我们的单词不在我们的字典中,我们停下来允许用户从建议列表中选择一个替代方案,或者手动键入一个替代方案。
我们还允许用户随时取消检查。如果他们这样做,我们会替换他们已经检查过的部分,其余部分则保持不变。
如果他们已到达检查的结尾,我们会向他们显示一条消息,替换原始文本,并关闭 SpellSuggest 窗口。