2010-02-14 73 views
0

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

  • 只有在英语
  • 仅支持使用英语字符集语言(西班牙语等)

感谢

编辑:对不起,不够清楚。这个应用程序正在生产,当我检查存储文本的SQL数据库时,有很多带有“??? ?????”的行。在进一步调查中,看起来这是由于将非英文文本保存到数据库时造成的。作为一个例子,去谷歌新闻,从下拉列表中选择谷歌韩国,复制一些韩国文本,并将其保存到SQL服务器数据库

任何人?

+2

是“Zeitgeist”英语还是德语? “恐惧症”?这两者都可以是德国人。你能分享你的动机吗?到目前为止,对我来说似乎是不可能的 - 或者我还没有得到它。 – 2010-02-14 17:56:49

+1

询问用户你是英文的吗?它是一个信任的东西:P – slayerIQ 2010-02-14 18:04:13

+0

将它保存为nchar(unicode)以获得韩文 – Paparazzi 2013-01-26 19:13:49

回答

0

通过“英语字符集”,我猜ASCII character set

您可以遍历每个字符并查看它是否位于ASCII范围内。

+0

是的,你是对的。任何想法如何验证,以确保每个字符在ASCII范围内?有没有办法验证整个文本块,而不是通过字符char? – Nick 2010-02-17 14:24:45

+0

我不知道有什么方法可以完成整个文本块。 – Subbu 2010-02-18 06:04:47

0

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

一个很好的样本是这样

这是因为简单如下

NetSpell.SpellChecker.Spelling SpellChecker = 
      new NetSpell.SpellChecker.Spelling SpellChecker() 

SpellChecker.Text = MyTextBox.Text; 
SpellChecker.SpellCheck(); 

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

0

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

你也可以做一些文本分析,并检查每个字符或像'th'等短序列的发生等。每种语言都有特定的字符发生,这可以帮助您确定文字的写法。

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

我希望你有一些可能性的想法。
最好的问候,奥利弗Hanappi

0

如果这是文本的一个比较小的金额,你可以尝试找一本英语词典Web服务,并尝试查单词。如果查找失败,您很可能会有其他语言的拼写错误或其他内容。我还没有找到一个接受大段的文字,但有经营关dict.org数据库的Web服务:您指的是

DictService