如何检查TextBox
是否包含数字,字母,还有特殊字母如“õ,ä,ö,ü”?特殊字母检查
我用代码来检查数字和字母:
Regex.IsMatch(Value, "^[a-z0-9]+$", RegexOptions.IgnoreCase)
如何检查TextBox
是否包含数字,字母,还有特殊字母如“õ,ä,ö,ü”?特殊字母检查
我用代码来检查数字和字母:
Regex.IsMatch(Value, "^[a-z0-9]+$", RegexOptions.IgnoreCase)
是否How can you strip non-ASCII characters from a string? (in C#)包含任何指针?
您可以在正则表达式中使用\uXXXX
语法包含unicode,以获取您专门要剥离测试的其他字母。
Regex.IsMatch(Value, "^[a-z0-9\u00c0-\u00f6]+$", RegexOptions.IgnoreCase)
我如何检查是否文本框包含数字和字母,
bool isValid = textBox.Text.All(char.IsLetterOrDigit);
请看下面的例子:
string str = "Something123õäö";
bool isValid = str.All(char.IsLetterOrDigit);
对于上述情况,您将获得true
。
如果他不想包含所有char.IsLetterOrDigit字符,例如: “ä”和“ö”但不是“õ”? – pascalhein
这个答案取决于字符串的Unicode统一化!例如'“olé”.Normalize()'会好,而''ole \ u0301“'或''olé”.Normalize(NormalizationForm.FormD)'将被拒绝。请注意,某些(罕见)重音字母不能用一个“System.Char”代码单元进行制作。 –
感谢您的回答,但我更容易的方法为我的代码下面:) – Taurib
只是遍历每个char和或连接到其他字符,并与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
数组应该照顾你想要接受的一切。
此代码变得非常长,得到更短的代码下面,但感谢您的回答:) – Taurib
一个更好的问题是什么字你想排除? – NWard
要在Regex中检查特定的Unicode字符,你可以使用'\ unnnn'谓词,其中nnnn是char代码 –