У меня есть следующее регулярное выражение ^ [a-zA-Z0-9] + $
, которое позволяет использовать буквенно-цифровые символы. Проблема здесь в том, что если я введу только числовой символ, например «897687», то регулярное выражение все равно будет совпадать. Я не хочу, чтобы это случилось. Должен быть хотя бы один текстовый символ, и он должен начинаться с текстового символа. Например, например, «a343», «a98bder» или «a4544fgf343»
Было бы здорово, если бы вы помогли мне улучшить мое регулярное выражение для этого.
На всякий случай, когда символов ASCII в какой-то момент недостаточно, здесь версия Unicode:
^\p{L}[\p{L}\p{N}]*$
\p{L}
- это любая кодовая точка Unicode, которая имеет букву свойства ==> Любая буква из любой язык (в Unicode)
\p{N}
- это любая кодовая точка Unicode, у которой есть свойство number ==> Любой символ числа из любого языка (в Unicode)
Эта функция будет возвращать true или false в зависимости от того, соответствует ли регулярное выражение или нет,
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex(@"^[a-zA-Z0-9\s,]*$");
return rg.IsMatch(strToCheck);
}
Это лучшее решение для проверки буквенно-цифровых символов,
, если оно буквенно-цифровое - «Успех».
if (System.Text.RegularExpressions.Regex.IsMatch(txt.Text, @"[a-zA-Z]") &&
System.Text.RegularExpressions.Regex.IsMatch(txt.Text, @"[0-9]")
{
// Success - It is alphanumric
}
else
{
// Error - It is not alphanumric
}