Проверить буквенно-цифровые символы в строке в С#
Я использовал следующий код, но он возвращает false, хотя он должен возвращать true
string check,zipcode;
zipcode="10001 New York, NY";
check=isalphanumeric(zipcode)
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex("[^a-zA-Z0-9]");
//if has non AlpahNumeric char, return false, else return true.
return rg.IsMatch(strToCheck) == true ? false : true;
}
Ответы
Ответ 1
Попробуйте следующее:
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex(@"^[a-zA-Z0-9\s,]*$");
return rg.IsMatch(strToCheck);
}
Это более неустранимо, если вы укажете в regex, что ваша строка ДОЛЖНА содержать, а не то, что НЕ ДОЛЖНО.
В приведенном выше примере:
- ^ - означает начало строки
- [] * - может содержать любое количество символов между скобками
- a-zA-Z0-9 - любые буквенно-цифровые символы
- \s - любые символы пробела (пробел/табуляция и т.д.).
- - запятые
- $- конец строки
Ответ 2
public static bool IsAlphaNumeric(string strToCheck)
{
return strToCheck.All(char.IsLetterOrDigit);
}
Ответ 3
10001 New York, NY
содержит запятую и пробелы - не буквенно-цифровые
Вам нужно настроить свое выражение, чтобы разрешить запятые и пробелы.
Кроме того, вы, вероятно, захотите переименовать функцию, чтобы другим разработчикам было ясно, что она скорее является валидатором, чем функцией isAlphaNumeric().
Ответ 4
Когда ^ находится в [], это означает все, кроме этих символов.
Ответ 5
tring check,zipcode;
zipcode="10001 New York, NY";
check=isalphanumeric(zipcode)
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex("[^a-zA-Z0-9]");
//if has non AlpahNumeric char, return false, else return true.
return rg.IsMatch(strToCheck) == true ? false : true;
}
этот код возвращает всегда false, потому что символ-символ означает, что эта строка не содержит буквенно-цифровой caractere, вам нужно удалить этот ^
Ответ 6
В мои дни perl я бы использовал это регулярное выражение:
\ ш +
что означает один или несколько символов слова. Символ слова в основном a-zA-Z0-9 и в основном не заботится о пунктуации или пробелах. Поэтому, если вы просто хотите убедиться, что в строке есть значение значения, это то, что я использовал в С#:
public static Boolean isAlphaNumeric(string strToCheck)
{
Regex rg = new Regex(@"\w+");
return rg.IsMatch(strToCheck);
}
Благодаря Хопикадзе для основной структуры.
Я думаю, что это будет быстрее, потому что вместо проверки всей строки он остановится в первом экземпляре символа слова и вернет true.
Ответ 7
Мне нужен был метод, чтобы увидеть, содержит ли строка какой-либо альфа-числовой, без использования Regex...
public static bool ContainsAlphaNumeric(string strToCheck)
{
foreach(char c in strToCheck)
{
if (char.IsLetterOrDigit(c))
{
return true;
}
}
return false;
}