Share via


Cara: Copot Karakter Tidak Valid dari String

Contoh berikut menggunakan metode Regex.Replace statik untuk menghapus karakter yang tidak valid dari string.

Peringatan

Saat menggunakan System.Text.RegularExpressions untuk memproses masukan yang tidak tepercaya, berikan batas waktu. Pengguna berbahaya dapat memberikan input ke RegularExpressions, yang menyebabkan serangan Penolakan Layanan. ASP.NET API kerangka kerja Core yang menggunakan RegularExpressions batas waktu.

Contoh

Anda dapat menggunakan metode CleanInput yang ditentukan dalam contoh ini untuk mencopot karakter yang berpotensi berbahaya yang telah dimasukkan ke dalam bidang teks yang menerima input pengguna. Dalam hal ini, CleanInput mencopot semua karakter nonalfanumerik kecuali titik (.), simbol at (@), dan tanda hubung (-), dan mengembalikan string yang tersisa. Namun, Anda dapat memodifikasi pola regex agar mencopot karakter apa pun yang tidak boleh disertakan dalam string input.

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

Pola [^\w\.@-] regex cocok dengan karakter apa pun yang bukan karakter kata, titik, simbol @, atau tanda hubung. Karakter kata adalah huruf apa pun, digit desimal, atau konektor tanda baca seperti garis bawah. Setiap karakter yang cocok dengan pola ini digantikan oleh String.Empty, yang merupakan string yang ditentukan oleh pola pengganti. Untuk mengizinkan karakter tambahan dalam input pengguna, tambahkan karakter tersebut ke kelas karakter dalam pola regex. Misalnya, pola [^\w\.@-\\%] regex juga memungkinkan simbol persentase dan garis miring terbalik dalam string input.

Lihat juga