【问题标题】:How do I validate for language? ASP.NET如何验证语言? ASP.NET
【发布时间】:2010-02-14 17:52:51
【问题描述】:

在应用程序的文本框中,我需要验证以确保用户只输入英文文本。我知道一些语言,例如西班牙语,共享英语的字母表。如何验证文本以确保它是:

  • 仅英文版
  • 仅支持使用英语字符集的语言(西班牙语等)

谢谢

编辑:抱歉不够清楚。这个应用程序正在生产中,当我检查存储文本的 SQL 数据库时,有很多行带有“??? ?????”。经过进一步调查,这似乎是由于将非英语文本保存到数据库中造成的。例如,转到 google news,从下拉列表中选择 google Korea,复制一些韩文文本并将其保存到 SQL 服务器数据库

有人吗?

【问题讨论】:

  • “时代精神”是英文还是德文? “焦虑”?两者都可以是德国人。你能分享你的动机吗?到目前为止,这对我来说似乎是不可能的 - 或者我还没有得到它。
  • 先问用户你是英文的吗?这是一个信任的事情:P
  • 另存为nchar(unicode)获取韩文

标签: c# asp.net validation


【解决方案1】:

“英文字符集”,我猜你指的是ASCII character set

您可以遍历每个字符,看看它是否在 ASCII 范围内。

【讨论】:

  • 是的,你是对的。知道如何验证以确保每个字符都在 ASCII 范围内吗?有没有办法验证整个文本块而不是逐个字符地进行?
  • 我不知道有任何方法可以对整个文本块执行此操作。
【解决方案2】:

如果大多数使用的单词都被这本词典识别,您可以尝试检查英语词典(例如,OpenOffice 有一本您可以免费使用的词典,但不确定)。

您还可以进行某种文本分析并检查每个字符或短序列(如“th”等)的出现。每种语言都有特定的字符出现,这可以帮助您确定文本是用哪种语言编写的。

我不会禁止某些字符,因为至少在名称中经常出现特殊字符。

我希望您对一些可能性有所了解。
最好的问候,奥利弗·哈纳皮

【讨论】:

    【解决方案3】:

    如果这是针对少量文本的,您可以尝试查找英语词典网络服务并尝试查找单词。如果查找失败,您很可能有错字或其他语言的内容。我还没有找到一个可以接受大块文本的服务,但是有一个 Web 服务可以在 dict.org 数据库之外运行:

    DictService

    【讨论】:

      【解决方案4】:

      一种方法是使用英语词典/拼写检查器,如果是有效的英语/西班牙语单词

      一个很好的样本是这个

      就这么简单

      NetSpell.SpellChecker.Spelling SpellChecker = 
                   new NetSpell.SpellChecker.Spelling SpellChecker()
      
      SpellChecker.Text = MyTextBox.Text;
      SpellChecker.SpellCheck();
      

      NetSpell 主页:http://www.loresoft.com/NetSpell

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        相关资源
        最近更新 更多