проверьте, есть ли буклет - PullRequest
       12

проверьте, есть ли буклет

10 голосов
/ 02 апреля 2012

Я хочу проверить, содержит ли строка только правильные буквы. Я использовал Char.IsLetter для этого. Моя проблема в том, что когда есть такие символы, как é или á, они также называются правильными буквами, которых быть не должно.

есть ли возможность проверить символ как правильную букву A-Z или a-z без специальных букв типа?

Ответы [ 5 ]

24 голосов
/ 02 апреля 2012
bool IsEnglishLetter(char c)
{
    return (c>='A' && c<='Z') || (c>='a' && c<='z');
}

Вы можете сделать это методом расширения:

static bool IsEnglishLetter(this char c) ...
9 голосов
/ 02 апреля 2012

Вы можете использовать Char.IsLetter(c) && c < 128. Или просто c < 128, что, кажется, соответствует вашей проблеме ближе всего.

Но вы решаете проблему Кодировка путем фильтрации символов. Изучите, что точно понимает другое приложение.

Возможно, вы просто пишете с Encoding.GetEncoding(someCodePage).

6 голосов
/ 02 апреля 2012

Вы можете использовать регулярное выражение \w или [a-zA-Z] для него

3 голосов
/ 02 апреля 2012
// Create the regular expression
string pattern = @"^[a-zA-Z]+$";
Regex regex = new Regex(pattern);

// Compare a string against the regular expression
return regex.IsMatch(stringToTest);
0 голосов
/ 10 августа 2015

Используйте Linq для легкого доступа:

if (yourString.All(char.IsLetter))
{
    //just letters are accepted.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...