Ú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 RegularExpressions
meg 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.