Come posso verificare se il mio input è un tipo particolare di stringa. Quindi non numerico, no "/", ...controllare il contenuto della stringa di input
risposta
Beh, per verificare che un ingresso è in realtà un oggetto di tipo System.String
, si può semplicemente fare:
bool IsString(object value)
{
return value is string;
}
Per verificare che un string
contiene solo lettere, si potrebbe fare qualcosa di simile:
bool IsAllAlphabetic(string value)
{
foreach (char c in value)
{
if (!char.IsLetter(c))
return false;
}
return true;
}
Se si voleva combinare queste, si potrebbe fare così:
bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}
Un buon esempio di entrambi, poiché il titolo e la domanda non corrispondono esattamente. – corsiKa
Non è del tutto chiaro cosa vuoi, ma probabilmente puoi farlo con un'espressione regolare. Ad esempio, per verificare che la stringa contenga solo lettere in az o AZ si può fare questo:
string s = "dasglakgsklg";
if (Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase))
{
Console.WriteLine("Only letters in a-z.");
}
else
{
// Not only letters in a-z.
}
Se vuoi anche per permettere spazi, sottolinea, o altri caratteri è sufficiente aggiungerle tra le parentesi quadre nelle espressioni regolari . Nota che alcuni personaggi hanno un significato speciale all'interno delle classi di caratteri delle espressioni regolari e devono essere sottoposti a escape con una barra rovesciata.
È inoltre possibile utilizzare \p{L}
anziché [a-z]
per corrispondere a qualsiasi carattere Unicode che è considerato come una lettera, comprese le lettere negli alfabeti stranieri.
Qualcosa di simile (non testato) può soddisfare il tuo (vago) requisito.
if (input is string)
{
// test for legal characters?
string pattern = "^[A-Za-z]+$";
if (Regex.IsMatch(input, pattern))
{
// legal string? do something
}
// or
if (input.Any(c => !char.IsLetter(c)))
{
// NOT legal string
}
}
using System.Linq;
...
bool onlyAlphas = s.All(c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
+1 per non usare espressioni regolari! – Aren
-1 per essere brutale – Luiscencio
Non fraintendetemi: regex ha i suoi usi. Ma per un semplice algoritmo single-pass come questo, è eccessivo. Mi piace la risposta di Reed di più, però. Non conoscevo 'Char.IsLetter'. – StriplingWarrior
Se vuoi dire "è la stringa completamente lettere", si potrebbe fare:
string myString = "RandomStringOfLetters";
bool allLetters = myString.All(c => Char.IsLetter(c));
Questo si basa su LINQ e il metodo Char.IsLetter.
questo è cool =) – Luiscencio
Come funziona Char.IsLetter con la localizzazione? – ahsteele
@ahsteele: In realtà System.Globalization.CharUnicodeInfo per gestire questo per caratteri non latini. –
- 1. Controllare il formato della stringa Python?
- 2. Come controllare il set di caratteri della stringa?
- 3. controllare il contenuto iframe con javascript/html
- 4. XML non parsing della stringa in input con il sax
- 5. Excel VBA - elimina il contenuto della stringa fino a * word *
- 6. javascript, regex analizza il contenuto della stringa tra parentesi graffe
- 7. Controllare un input con jQuery.contains()
- 8. Controllare la lunghezza del valore di input
- 9. controllare se il file di input archiviato è vuoto jquery
- 10. Conversione della stringa di input dell'utente nell'espressione regolare
- 11. Recupera il contenuto dell'URL come stringa
- 12. leggere il contenuto della cache della CPU
- 13. Come ottenere il contenuto di console.log come stringa in JavaScript
- 14. Come controllare il contenuto della cache del risultato preflight in firefox
- 15. Controllare se sono presenti elementi di input a fuoco
- 16. Controllare se la stringa contiene tutti "?"
- 17. Controllare se una stringa contiene una stringa
- 18. La sostituzione della stringa Scala Anorm disinfetta gli input?
- 19. Come controllare il parametro di stringa Request.QueryString per null?
- 20. Numpy: controllare la matrice per il tipo di dati stringa
- 21. Ricerca di una stringa in un flusso di input
- 22. Come so se il mio input = "file" ha contenuto selezionato
- 23. jQuery: Converti il contenuto TextArea in stringa html e viceversa
- 24. Controllare elenco di parole in un'altra stringa
- 25. Rileva stringa/lingua di input utente
- 26. Controllare stringa vuota in jsp
- 27. sostituisce un segmento di stringa dal flusso di input
- 28. Convalida il contenuto di std :: initializer_list al momento della compilazione
- 29. Come controllare vincoli sui tipi di contenuto destrezza fields
- 30. La stringa esiste controllare 20 volte
D o per caso vuoi dire alfabetico (solo lettere) anziché stringa? – BoltClock
Vuoi dire, "Come posso verificare se una stringa contiene solo caratteri?" –
Intendi una stringa composta solo da caratteri alfanumerici? Puoi definire quali caratteri esattamente? –