首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何验证字符串是否为英文?

如何验证字符串是否为英文?
EN

Stack Overflow用户
提问于 2010-02-15 21:08:12
回答 11查看 36.5K关注 0票数 27

我从控制台读取了一个字符串。如何确保它只包含英文字符和数字?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-02-15 21:11:07

假设您所说的“英语字符”仅仅指的是26个字符的拉丁字母表,我将在这里使用正则表达式:^[a-zA-Z0-9 ]*$

例如:

代码语言:javascript
复制
if( Regex.IsMatch(Console.ReadLine(), "^[a-zA-Z0-9]*$") )
{ /* your code */ }

在这种情况下,正则表达式的好处是,您真正关心的是字符串是否与模式匹配-这是正则表达式非常有效的一个方面。它清楚地捕捉到了你的意图,如果你对“英文字符”的定义超出了26个字母的范围,那么它很容易扩展。

有一个不错的series of articles here,它教授了更多关于正则表达式的知识。

Jørn Schou-Rode的回答很好地解释了这里给出的正则表达式是如何匹配您的输入的。

票数 36
EN

Stack Overflow用户

发布于 2017-02-24 18:56:58

另一种方法是检查IsLower和IsUpper是否都没有返回true。类似于:

代码语言:javascript
复制
    private bool IsAllCharEnglish(string Input)
    {
        foreach (var item in Input.ToCharArray())
        {
            if (!char.IsLower(item) && !char.IsUpper(item) && !char.IsDigit(item) && !char.IsWhiteSpace(item))
            {
                return false;
            }
        }
        return true;
    }

为了使用它:

代码语言:javascript
复制
        string str = "فارسی abc";
        IsAllCharEnglish(str); // return false
        str = "These are english 123";
        IsAllCharEnglish(str); // return true
票数 5
EN

Stack Overflow用户

发布于 2010-02-15 21:59:57

您是否可以访问web?我假设这是不能保证的,但是Google有一个语言api可以检测你传递给它的语言。google language api

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2266088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档