如何验证字符串是否为英文?我从控制台读取了一个字符串。如何确保它只包含英文字符和数字?假设“英文字符”只是指26个字符的拉丁字母表,这将是我将使用正则表达式的区域:^[a-zA-Z0-9]*$例如:if(Regex.IsMatch(Console.ReadLine(),"^[a-zA-Z0-9]*$")){/*你的代码*/}在这种情况下,正则表达式的好处是你真正关心的是字符串是否匹配模式匹配——这是正则表达式非常有效的地方。它清楚地抓住了您的意图,并且如果您对“英文字符”的定义超过26个字母,则很容易扩展。这里有一系列很好的文章,更多地介绍了正则表达式。J?rnSchou-Rode的回答很好地解释了此处显示的正则表达式如何与您的输入相匹配。您可以将其与此正则表达式匹配:^[a-zA-Z0-9]*$要在C#程序中使用该表达式,您需要导入System.Text.RegularExpressions并在您的代码中执行以下操作:boolmatch=Regex.IsMatch(输入,"^[a-zA-Z0-9]*$");如果要针对模式测试多行,可能需要编译表达式:Regexpattern=newRegex("^[a-zA-Z0-9]*$",RegexOptions.Compiled);for(inti=0;i你有网络访问权限吗?我认为没有保证,但谷歌有一个语言api可以检测你传递给它的语言。谷歌语言APIboolAllAscii(stringstr){return!str.Any(c=>!Char.IsLetterOrDigit(c));}boolonlyEnglishCharacters=!EnglishText.Any(a=>a>'~');便宜,但它对我有用,合法的答案很简单。希望它可以帮助任何人另一种方法是检查IsLower和IsUpper是否都返回true。类似于:privateboolIsAllCharEnglish(stringInput){foreach(variteminInput.ToCharArray()){if(!char.IsLower(item)&&!char.IsUpper(item)&&!char.IsDigit(item)&&!char.IsWhiteSpace(item)){返回false;}}返回真;}并使用它:IsAllCharEnglish(str);//returnfalsestr="这些是英语123";IsAllCharEnglish(海峡);//像这样返回true(如果你想控制输入):staticstringReadLettersAndDigits(){StringBuildersb=newStringBuilder();ConsoleKeyInfo键信息;while((keyInfo=Console.ReadKey(true)).Key!=ConsoleKey.Enter){charc=char.ToLower(keyInfo.KeyChar);if(('a'如果我不想使用RegEx,只是提供一个替代方案,你可以检查每个字符的ASCII码,如果它在这个范围之间它可能是英文字母或数字(这可能不是最佳解决方案):foreach(charchinstr.ToCharArray()){intx=(int)char;if(x>=63andx=48andxhttp://en.wikipedia.org/wiki/ASCII对于完整的ASCII形式。但我仍然认为,RegEx是最好的解决方案。我同意正则表达式的答案。但是,您可以将其简化为“^[w]+$”。w是任何“单词字符”(如果您使用的是非unicode字母表,则转换为[a-zA-Z_0-9]。我不知道您是否也需要下划线。有关.net中正则表达式的更多信息,访问:http://msdn.microsoft.com/en-us/library/ms972966.aspx#regexnet_topic8正如许多人指出的那样,接受的答案只有在字符串中只有一个单词的情况下才有效。因为没有答案涵盖了字符串中多个单词甚至句子的情况,这里是代码:stringToCheck.Any(x=>char.IsLetter(x)&&!((int)x>=63&&(int)x不要使用RegEx和LINQ,它们比字符串字符慢性能测试我的解决方案privatestaticboolis_only_eng_letters_and_digits(stringstr){foreach(charchinstr){if(!(ch>='A'&&ch='a'&&ch='0'&&chTheacceptedanswerregexdoesnotsupportspacesorpunctuation.下面的代码测试这个输入:123abc!??-_)(/;:以上是C#学习教程:Howtovalidatewheelastring是英文吗分享的全部内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注---text1="123abc!??-_)(/\;:";boolt=Regex.IsMatch(text1,"^[a-zA-Z0-9.-_?]*$")//truetext2="?";boolf=Regex.IsMatch(text2,"^[a-zA-Z0-9.-_?]*$")//false本文摘自网络,不代表立场,如涉及侵权,请点击有权联系管理员删除,如需转载请注明出处:
