C# 字符/语言

C# 字符/语言,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我刚刚开发了一个简单的asp.NETMVC应用程序项目,只适用于英语。我想阻止用户输入英语以外的语言。当用户在文本框或编辑器上写东西以发出弹出消息时,是否可以知道用户是否输入了其他语言?检查拉丁语26 如果要确保提交了任何非英语字母,只需验证它们是否在A-Z、A-Z、0-9和正常标点范围之外。听起来您希望检测并拒绝常规的非拉丁字符 检测用户的操作系统设置时,键盘设置不是最好的方法,因为用户可以连接多个键盘,并使用复制/粘贴 用户界面验证 在用户界面级别,您可以创建一个jQuery方法,该方法将检

我刚刚开发了一个简单的asp.NETMVC应用程序项目,只适用于英语。我想阻止用户输入英语以外的语言。当用户在文本框或编辑器上写东西以发出弹出消息时,是否可以知道用户是否输入了其他语言?

检查拉丁语26

如果要确保提交了任何非英语字母,只需验证它们是否在A-Z、A-Z、0-9和正常标点范围之外。听起来您希望检测并拒绝常规的非拉丁字符

检测用户的操作系统设置时,键盘设置不是最好的方法,因为用户可以连接多个键盘,并使用复制/粘贴

用户界面验证

在用户界面级别,您可以创建一个jQuery方法,该方法将检查文本框的值是否为可接受范围以外的值。也许是A-Z,A-Z和数字。您可以在事件onBlur上执行此操作。请记住,您可能希望允许

$('#customerName').blur(function() {
    var isAlphaNumeric;
    //implementation of checking a-z, A-Z, 0-9, etc.
    alert(isAlphaNumeric);
});
控制器验证

如果还希望在控制器级别实现此功能,可以对传入值运行正则表达式

public ActionMethod CreateCustomer(string custName)
{
    if (IsAcceptableRange(custName))
    { 
       //continue
    }
}

public bool IsAcceptableRange(string input)
{
   //whitelist all the valid inputs here. be sure to include 
   //space, period, apostrophe, hypen, etc
   Regex alphaNumericPattern=new Regex("[^a-zA-Z0-9]");
   return !alphaNumericPattern.IsMatch(input); 
}

检查拉丁语26

如果要确保提交了任何非英语字母,只需验证它们是否在A-Z、A-Z、0-9和正常标点范围之外。听起来您希望检测并拒绝常规的非拉丁字符

检测用户的操作系统设置时,键盘设置不是最好的方法,因为用户可以连接多个键盘,并使用复制/粘贴

用户界面验证

在用户界面级别,您可以创建一个jQuery方法,该方法将检查文本框的值是否为可接受范围以外的值。也许是A-Z,A-Z和数字。您可以在事件onBlur上执行此操作。请记住,您可能希望允许

$('#customerName').blur(function() {
    var isAlphaNumeric;
    //implementation of checking a-z, A-Z, 0-9, etc.
    alert(isAlphaNumeric);
});
控制器验证

如果还希望在控制器级别实现此功能,可以对传入值运行正则表达式

public ActionMethod CreateCustomer(string custName)
{
    if (IsAcceptableRange(custName))
    { 
       //continue
    }
}

public bool IsAcceptableRange(string input)
{
   //whitelist all the valid inputs here. be sure to include 
   //space, period, apostrophe, hypen, etc
   Regex alphaNumericPattern=new Regex("[^a-zA-Z0-9]");
   return !alphaNumericPattern.IsMatch(input); 
}

您可以将输入框限制为拉丁字符,但无法自动查看用户是否以英语、芬兰语或挪威语输入内容。它们大多都使用a-z。a-z之外的任何字符都可以给你一个提示,但是某些口音也需要在英语中被允许,所以它不是100%


公开javascript API以检测文本语言。

您可以将输入框限制为拉丁字符,但无法自动查看用户是否输入了英语、芬兰语或挪威语。它们大多都使用a-z。a-z之外的任何字符都可以给你一个提示,但是某些口音也需要在英语中被允许,所以它不是100%


公开javascript API以检测文本语言。

您可以执行两个测试。一个是找出用户计算机上的cultureinfo设置:

这将为您提供他们当前的区域设置,这是一个开始。当然,您可以将设置为“英语”,但仍然使用俄语输入,并且大多数字母都是相同的

因此,下一步是使用以下方法发现语言:


根据在线讨论,这不是最好的,但它是一个开始。不过,我相信还有更好的自然语言标识符。

您可以做两个测试。一个是找出用户计算机上的cultureinfo设置:

这将为您提供他们当前的区域设置,这是一个开始。当然,您可以将设置为“英语”,但仍然使用俄语输入,并且大多数字母都是相同的

因此,下一步是使用以下方法发现语言:


根据在线讨论,这不是最好的,但它是一个开始。不过,我相信还有更好的自然语言标识符。

请使用以下代码:

<p>Note that this community uses the English language exclusively, so please be
considerate and write your posts in English. Thank you!</p>
注意,这个社区只使用英语,所以请注意
考虑周到,用英语写你的帖子。谢谢大家!


使用以下代码:

<p>Note that this community uses the English language exclusively, so please be
considerate and write your posts in English. Thank you!</p>
注意,这个社区只使用英语,所以请注意
考虑周到,用英语写你的帖子。谢谢大家!


Google Translate在两个答案中被引用,但我想补充一点,Microsoft Word API也可以用于检测语言,就像Word用于检查拼写一样

这肯定不是最好的解决方案,因为Microsoft Office的语言检测功能不太好(IMHO),但如果对每个发布的消息向Google或其他远程服务发出web请求不是一个解决方案,那么它可能是一个替代方案

此外,通过Microsoft Word API检查拼写也很有用。如果一封邮件在签入英语时有大量拼写错误的单词,可能是因为该邮件是用另一种语言编写的(或者该邮件的作者也写得太糟糕)


最后,我完全同意Matti Virkkunen的观点。确保邮件以英语书写的最佳方法,也许是唯一的方法,就是要求用户以英语书写。否则,它和实现一样糟糕。

谷歌翻译在两个答案中被引用,但我想补充一点,微软Word API也可以用于检测语言,就像Word用于检查拼写一样

这肯定不是最好的解决方案,因为Microsoft Office的语言检测功能不太好(IMHO),但如果对每个发布的消息向Google或其他远程服务发出web请求不是一个解决方案,那么它可能是一个替代方案

此外,通过Microsoft Word API检查拼写也很有用。如果邮件在检查时有大量拼写错误的单词