Как проверить строку, чтобы убедиться, что она содержит только числа, буквы или пробелы?
Проверить специальные символы (/* - + _ @& $#%) в строке?
Ответ 1
Самый простой способ использовать регулярное выражение:
Регулярное выражение для буквенно-цифровых и подчеркиваний
Использование регулярных выражений в .net:
http://www.regular-expressions.info/dotnet.html
var regexItem = new Regex("^[a-zA-Z0-9 ]*$");
if(regexItem.IsMatch(YOUR_STRING)){..}
Ответ 2
Простой:
function HasSpecialChars(string yourString)
{
return yourString.Any( ch => ! Char.IsLetterOrDigit( ch ) )
}
Ответ 3
string s = @"$KUH% I*$)OFNlkfn$";
var withoutSpecial = new string(s.Where(c => Char.IsLetterOrDigit(c)
|| Char.IsWhiteSpace(c)).ToArray());
if (s != withoutSpecial)
{
Console.WriteLine("String contains special chars");
}
Ответ 4
Попробуйте этот путь.
public static bool hasSpecialChar(string input)
{
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
foreach (var item in specialChar)
{
if (input.Contains(item)) return true;
}
return false;
}
Ответ 5
String test_string = "tesintg#[email protected]#";
if (System.Text.RegularExpressions.Regex.IsMatch(test_string, "^[a-zA-Z0-9\x20]+$"))
{
// Good-to-go
}
Пример можно найти здесь: http://ideone.com/B1HxA
Ответ 6
Если список допустимых символов довольно мал, вы можете использовать регулярное выражение, подобное этому:
Regex.IsMatch(items, "[a-z0-9 ]+", RegexOptions.IgnoreCase);
Используемое здесь регулярное выражение ищет любой символ из az и 0-9, включая пробел (что внутри квадратных скобок []), что есть один или несколько из этих символов (знак + - вы можете использовать * для 0 или более). Последняя опция сообщает парсеру regex игнорировать регистр.
Это приведет к сбою во всем, что не является буквой, числом или пробелом. Чтобы добавить больше символов в список благословений, добавьте их в квадратные скобки.
Ответ 7
Используйте регулярное выражение ниже, чтобы проверить строку, чтобы убедиться, что она содержит только числа, буквы или пробел:
[a-zA-Z0-9 ]
Ответ 8
Отличный способ использования С# и Linq здесь:
public static bool HasSpecialCharacter(this string s)
{
foreach (var c in s)
{
if(!char.IsLetterOrDigit(c))
{
return true;
}
}
return false;
}
И получить к нему доступ так:
myString.HasSpecialCharacter();