特殊信件检查

本文关键字:检查 特殊信件 | 更新日期: 2023-09-27 18:24:25

如何检查TextBox是否包含数字、字母,以及是否包含特殊字母,如"õ,ä,ö,ü"?

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

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

特殊信件检查

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

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

考虑以下示例:

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

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

如何从字符串中去除非ASCII字符?(在C#中)是否包含任何指针?

您可以使用'uXXXX语法将unicode包含在正则表达式中,用于您特别想要对其进行剥离测试的任何其他字母。

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

只需在每个字符上循环,并与其他字符以及字母和数字的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数组应该能够处理您想要接受的所有内容。

如果您想验证所有"单词宪章",请使用'w,如果您想查看整个字符串是单词字符还是数字,请使用正则表达式^('w|'d)+$