特殊字母检查

时间:2013-07-23 18:49:33

标签: c# char special-characters

如何检查TextBox是否包含数字,字母,还有特殊字母,如“õ,ä,ö,ü”?

我使用代码检查数字和字母:

Regex.IsMatch(Value, "^[a-z0-9]+$", RegexOptions.IgnoreCase)

4 个答案:

答案 0 :(得分:8)

  

如何检查文本框是否仅包含数字和字母,

bool isValid = textBox.Text.All(char.IsLetterOrDigit);

考虑以下示例:

string str = "Something123õäö";
bool isValid = str.All(char.IsLetterOrDigit);

对于上述情况,您将获得true

答案 1 :(得分:1)

只需循环遍历每个字符并与其他字符进行比较,并与char.GetUnicodeCategory进行字母和数字比较:

var allowed = new[] { 'ö', 'ä' };
var isOK = textBox1.Text.All(c =>
    char.GetUnicodeCategory(c) == UnicodeCategory.LowercaseLetter ||
    char.GetUnicodeCategory(c) == UnicodeCategory.UppercaseLetter ||
    char.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber ||
    allowed.Contains(c));

UnicodeCategory.LowercaseLetter是标准的小写字母('a'..'z'),UnicodeCategory.UppercaseLetter是大写字母,UnicodeCategory.DecimalDigitNumber是数字,所以这个和自定义的allowed数组应该是照顾你想要接受的一切。

答案 2 :(得分:1)

How can you strip non-ASCII characters from a string? (in C#) 是否包含任何指针?

您可以在正则表达式中使用\uXXXX语法包含unicode,以获取您特别想要剥离测试的任何其他字母。

Regex.IsMatch(Value, "^[a-z0-9\u00c0-\u00f6]+$", RegexOptions.IgnoreCase)

答案 3 :(得分:0)

如果您要验证所有“字词包机”,只需使用\w,如果您想查看整个字符串是否只是单词字符或数字,请使用正则表达式^(\w|\d)+$