Megosztás a következőn keresztül:


Útmutató: Érvénytelen karakterek sztringből való csíkozása

Az alábbi példa a statikus Regex.Replace metódust használja az érvénytelen karakterek sztringből való csíkozására.

Figyelmeztetés

System.Text.RegularExpressions A nem megbízható bemenetek feldolgozásakor időtúllépést kell megadni. A rosszindulatú felhasználók adhatnak RegularExpressionsmeg bemenetet a szolgáltatásmegtagadási támadáshoz. ASP.NET core framework API-k, amelyek időtúllépést használnak RegularExpressions .

Példa

Az ebben a példában definiált metódussal eltávolíthatja a CleanInput felhasználói bemenetet elfogadó szövegmezőbe beírt potenciálisan káros karaktereket. Ebben az esetben CleanInput a pont (.), a szimbólumok (@) és a kötőjelek (-) kivételével az összes nonalphanumerikus karaktert eltávolítja, és a fennmaradó sztringet adja vissza. Módosíthatja azonban a reguláris kifejezésmintát úgy, hogy az a bemeneti sztringben nem szereplő karaktereket kiszűrje.

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

A reguláris kifejezésminta [^\w\.@-] megegyezik minden olyan karakterrel, amely nem szó karakter, pont, @ szimbólum vagy kötőjel. A szókaraktúra bármilyen betű, tizedesjegy vagy írásjel összekötő, például aláhúzásjel. A mintának megfelelő karakterek helyébe String.Emptya csereminta által definiált sztring lép. Ha további karaktereket szeretne engedélyezni a felhasználói bevitelben, adja hozzá ezeket a karaktereket a normál kifejezésmintában szereplő karakterosztályhoz. A reguláris kifejezésminta [^\w\.@-\\%] például százalékszimbólumot és fordított perjelet is lehetővé tesz egy bemeneti sztringben.

Lásd még