Come si controlla una stringa per assicurarsi che contenga solo numeri, lettere o spazio?
risposta
Il modo più semplice per usare un'espressione regolare:
Regular Expression for alphanumeric and underscores
Uso delle espressioni regolari in .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
}
Un esempio può essere trovato qui: http://ideone.com/B1HxA
usare l'espressione regolare di seguito in per convalidare una stringa per assicurarsi che contenga numeri, lettere, o lo spazio solo:
[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");
}
Se l'elenco di caratteri accettabili è piuttosto piccolo, è possibile utilizzare un'espressione regolare come questa:
L'espressione regolare usata qui cerca qualsiasi carattere da az e 0-9 compreso uno spazio (cosa c'è dentro le parentesi quadre []), che ci sono uno o più di questi caratteri (il segno + - tu può usare un * per 0 o più). L'opzione finale dice al parser regex di ignorare il caso.
Ciò non riuscirà su tutto ciò che non è una lettera, numero o spazio. Per aggiungere più personaggi all'elenco benedetto, aggiungilo tra parentesi quadre.
Semplice:
function HasSpecialChars(string yourString)
{
return yourString.Any(ch => ! Char.IsLetterOrDigit(ch))
}
provare in questo modo.
public static bool hasSpecialChar(string input)
{
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
foreach (var item in specialChar)
{
if (input.Contains(item)) return true;
}
return false;
}
- 1. Come rimuovere caratteri speciali da una stringa?
- 2. Rimuovere i caratteri speciali da una stringa
- 3. Stringa confronta con caratteri speciali in C#
- 4. Rimuovere tutti i caratteri speciali da una stringa in R?
- 5. Ruby: caratteri speciali di escape in una stringa
- 6. Come decodificare i caratteri XML speciali codificati in una stringa?
- 7. Come scrivere caratteri speciali ASCII in una stringa .net
- 8. Caratteri speciali in SQL
- 9. Stampa caratteri speciali in php
- 10. Set caratteri Caratteri speciali
- 11. Java: dividere una stringa che contiene caratteri speciali
- 12. Come rilevare se una stringa contiene caratteri speciali?
- 13. Java- Estrai parte di una stringa tra due caratteri speciali
- 14. preg_match caratteri speciali
- 15. Come scoprire se una stringa contiene uno dei caratteri speciali?
- 16. Regex rimuovere caratteri speciali
- 17. ajax post caratteri speciali
- 18. MySQL Inserire caratteri speciali
- 19. Escaping caratteri speciali in Perl regex
- 20. Lunghezza NSString - Caratteri speciali
- 21. Come convertire caratteri speciali in caratteri normali?
- 22. PHP: esplode utilizzando caratteri speciali
- 23. sostituire i caratteri speciali nella stringa in java
- 24. Come rimuovere i caratteri speciali dalla stringa in Swift 2?
- 25. Come utilizzare caratteri speciali in NSURL?
- 26. Escaping caratteri speciali in SQL
- 27. Escaping caratteri speciali in cmd
- 28. UnicodeWarning: caratteri speciali in Tkinter
- 29. filtro garbling Maven caratteri speciali
- 30. Conservazione di caratteri speciali in xml
Perché questa risposta non è stata alzata? Sembra corretto e veloce per me. È più facile che immergersi nel mondo regex per un problema così semplice. –
@MarcelloGrechiLins Regex è completamente valido e probabilmente più veloce quando si utilizza un Regex compilato e riutilizzarlo su un numero maggiore di stringhe. Come al solito con lo sviluppo del software ci sono dei compromessi. :-) –
In realtà voterei contro - con un test minimo, riporta vero per \ n, e dubito che qualcuno lo voglia. Regex lo limiterà a veri e propri caratteri speciali. – Charles