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.