Jak sprawdzić ciąg, aby upewnić się, że zawiera tylko liczby, litery lub spację?
Odpowiedz
Najprostszym sposobem jest użycie wyrażenia regularnego:
Regular Expression for alphanumeric and underscores
Korzystanie z wyrażeń regularnych w .NET:
http://www.regular-expressions.info/dotnet.html
var regexItem = new Regex("^[a-zA-Z0-9 ]*$");
if(regexItem.IsMatch(YOUR_STRING)){..}
String test_string = "tesintg#[email protected]#";
if (System.Text.RegularExpressions.Regex.IsMatch(test_string, "^[a-zA-Z0-9\x20]+$"))
{
// Good-to-go
}
Przykład można znaleźć tutaj: http://ideone.com/B1HxA
Użyj wyrażenia regularnego poniżej w celu potwierdzenia ciąg, aby upewnić się, że zawiera cyfr, liter lub tylko miejsca:
[a-zA-Z0-9 ]
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");
}
Jeśli lista dopuszczalnych znaków jest bardzo mała, można użyć wyrażenia regularnego podobnego do tego:
Regex.IsMatch(items, "[a-z0-9 ]+", RegexOptions.IgnoreCase);
Używane tutaj wyrażenie regularne szuka dowolnego znaku z az i 0-9, w tym spacji (co znajduje się w nawiasach kwadratowych []), że istnieje jeden lub więcej z tych znaków (znak + - ty może użyć * dla 0 lub więcej). Ostatnia opcja mówi parserowi regex, aby ignorował wielkość liter.
Nie powiedzie się w przypadku niczego, co nie jest literą, cyfrą lub spacją. Aby dodać więcej znaków do listy szczęścia, dodaj ją w nawiasach kwadratowych.
Proste:
function HasSpecialChars(string yourString)
{
return yourString.Any(ch => ! Char.IsLetterOrDigit(ch))
}
Spróbuj w ten sposób.
public static bool hasSpecialChar(string input)
{
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
foreach (var item in specialChar)
{
if (input.Contains(item)) return true;
}
return false;
}
- 1. Zamień znaki specjalne w ciągu w java
- 2. Regex usuń znaki specjalne
- 3. znaki specjalne w sed
- 4. wget i znaki specjalne
- 5. usuwania akcent i znaki specjalne
- 6. Konwertuj znaki specjalne na kody znaków HTML
- 7. Znaki specjalne w Androidzie sms
- 8. Jak uciec znaki specjalne HTML w Javie?
- 9. Znaki specjalne Escape w RegEx?
- 10. Znaki specjalne w pliku web.config
- 11. Java zastępuje znaki specjalne
- 12. MySQL Wstaw specjalne znaki
- 13. Sprawdzanie znaków specjalnych w ciągu znaków
- 14. Escape specjalne znaki HTML w Pythonie
- 15. Zapisywanie ciągu połączenia, gdy hasło zawiera znaki specjalne
- 16. jQuery: AJAX umlauty i znaki specjalne bałagan
- 17. Java: Usuń dziwne znaki specjalne ze String
- 18. liczyć określone znaki w ciągu znaków (Java)
- 19. Jak konwertować znaki specjalne na zwykłe znaki?
- 20. Znaki wstawiania w niewłaściwy indeks ciągu znaków
- 21. Wyodrębnij pierwsze 2 znaki w ciągu znaków
- 22. Sprawdź, czy ciąg zawiera wszystkie znaki innego ciągu w Ruby
- 23. Regex, aby znaleźć znaki specjalne w ciągu znaków z pewnymi wyjątkami
- 24. php regex escape znaki specjalne
- 25. Android Sqlite Specjalne znaki
- 26. Znaki specjalne w PHP/MySQL
- 27. znaki specjalne zastąpić
- 28. Jak usunąć znaki specjalne html?
- 29. UnicodeWarning: znaki specjalne w Tkinter
- 30. sprawdź znaki w varcharze
Dlaczego ta odpowiedź nie została poprawiona? Wydaje mi się prawidłowe i szybkie. Lepszy niż zanurzenie się w świecie regex dla tak łatwego problemu –
@MarcelloGrechiLins Regex jest całkowicie poprawny i prawdopodobnie szybszy, gdy używa się skompilowanego Regexa i ponownie go używa w wielu ciągach znaków. Jak zwykle przy tworzeniu oprogramowania istnieją kompromisy. :-) –
Głęboko oddałbym głos - z minimalnym testowaniem, przywraca to prawdę \ n, i wątpię, żeby ktoś tego chciał. Regex przynajmniej ograniczy go do rzeczywistych znaków specjalnych. – Charles