Procedura: Rimuovere caratteri non validi da una stringaHow to: Strip Invalid Characters from a String

L'esempio seguente usa il metodo statico Regex.Replace per rimuovere i caratteri non validi da una stringa.The following example uses the static Regex.Replace method to strip invalid characters from a string.

EsempioExample

È possibile usare il metodo CleanInput definito in questo esempio per rimuovere i caratteri potenzialmente dannosi che sono stati inseriti in un campo di testo che accetta l'input dell'utente.You can use the CleanInput method defined in this example to strip potentially harmful characters that have been entered into a text field that accepts user input. In questo caso, CleanInput rimuove tutti i caratteri non alfanumerici tranne punto (.), simboli "at" (@) e trattini (-) e restituisce la stringa restante.In this case, CleanInput strips out all nonalphanumeric characters except periods (.), at symbols (@), and hyphens (-), and returns the remaining string. È tuttavia possibile modificare l'espressione regolare in modo che rimuova i caratteri che non devono essere inclusi in una stringa di input.However, you can modify the regular expression pattern so that it strips out any characters that should not be included in an input string.

using System;
using System.Text.RegularExpressions;

public class Example
{
    static string CleanInput(string strIn)
    {
        // Replace invalid characters with empty strings.
        try {
           return Regex.Replace(strIn, @"[^\w\.@-]", "", 
                                RegexOptions.None, TimeSpan.FromSeconds(1.5)); 
        }
        // If we timeout when replacing invalid characters, 
        // we should return Empty.
        catch (RegexMatchTimeoutException) {
           return String.Empty;   
        }
    }
}
Imports System.Text.RegularExpressions

Module Example
    Function CleanInput(strIn As String) As String
        ' Replace invalid characters with empty strings.
        Try
           Return Regex.Replace(strIn, "[^\w\.@-]", "")
        ' If we timeout when replacing invalid characters, 
        ' we should return String.Empty.
        Catch e As RegexMatchTimeoutException
           Return String.Empty         
        End Try
    End Function
End Module

Il criterio di espressione regolare [^\w\.@-] corrisponde a qualsiasi carattere che non è un carattere alfanumerico, un punto, un simbolo @ o un trattino.The regular expression pattern [^\w\.@-] matches any character that is not a word character, a period, an @ symbol, or a hyphen. Un carattere alfanumerico è qualsiasi lettera, numero decimale o connettore di punteggiatura, ad esempio un carattere di sottolineatura.A word character is any letter, decimal digit, or punctuation connector such as an underscore. Qualsiasi carattere che corrisponde a questo criterio viene sostituito da String.Empty, ovvero la stringa definita dal criterio di sostituzione.Any character that matches this pattern is replaced by String.Empty, which is the string defined by the replacement pattern. Per consentire ulteriori caratteri nell'input dell'utente, aggiungere tali caratteri alla classe di caratteri nel criterio di espressione regolare.To allow additional characters in user input, add those characters to the character class in the regular expression pattern. Ad esempio, il criterio di espressione regolare [^\w\.@-\\%] consente anche un simbolo di percentuale e una barra rovesciata in una stringa di input.For example, the regular expression pattern [^\w\.@-\\%] also allows a percentage symbol and a backslash in an input string.

Vedere ancheSee Also

Espressioni regolari .NET.NET Regular Expressions