Filtraggio del testo

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Applicato a varie fonti e input, il filtraggio del testo impedisce agli utenti di vedere linguaggio inappropriato e informazioni personali identificabili come numeri di telefono. Roblox filtra automaticamente gli output di testo comuni come i messaggi che sono passati attraverso la chat testuale in esperienza, ma sei responsabile per filtrare qualsiasi testo visualizzato su cui non hai controllo esplicito.

Situazioni di filtraggio

Il testo può essere raccolto e/o visualizzato agli utenti in una varietà di situazioni, tra cui:

  • Un'esperienza che raccoglie l'input di testo degli utenti tramite le voci di TextBox, un'interfaccia GUI personalizzata con pulsanti come un'interfaccia tastiera/tastierino, o un modello di tastiera interattivo nello spazio 3D.

  • Un'esperienza che genera parole da caratteri casuali e le visualizza agli utenti, poiché c'è la possibilità che crei parole inappropriati.

  • Un'esperienza che si connette a un server web esterno per recuperare contenuti che vengono visualizzati nell'esperienza. Spesso non avrai controllo sul contenuto del sito esterno e una terza parte può modificare le informazioni.

  • Un'esperienza che memorizza testo come i nomi degli animali domestici degli utenti utilizzando data store, dove il testo memorizzato potrebbe includere parole inappropriati che dovrebbero essere filtrate quando vengono recuperate.

Processo di filtraggio

TextService:FilterStringAsync() filtra il testo dell'esperienza prendendo come input una stringa di testo e l'UserId dell'utente che ha creato il testo. Restituisce un oggetto TextFilterResult che ha due metodi aggiuntivi che puoi chiamare in diverse situazioni:

Nel contesto dell'input di TextBox, il seguente esempio raccoglie l'input all'evento FocusLost e lo invia al server tramite un RemoteEvent. Sul server, viene filtrato prima tramite FilterStringAsync() e poi GetNonChatStringForBroadcastAsync() con l'intenzione che il testo venga visualizzato a tutti gli utenti su un oggetto lato server come un SurfaceGui nel mondo 3D.

Filtraggio dell'input di testo - Script client

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- RemoteEvent per inviare l'input di testo al server per il filtraggio
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Gestore dell'evento per la perdita di focus e il tasto invio premuto
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("INVIATO:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Filtraggio dell'input di testo - Script server

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- RemoteEvent per ricevere l'input di testo dal client per il filtraggio
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
local function getFilterResult(text, fromUserId)
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(text, fromUserId)
end)
if success then
return filterResult
else
warn("Errore nella generazione di TextFilterResult:", errorMessage)
end
end
-- Attivato quando il client invia input dal TextBox
local function onInputReceived(player, text)
if text ~= "" then
local filterResult = getFilterResult(text, player.UserId)
if filterResult then
local success, filteredText = pcall(function()
return filterResult:GetNonChatStringForBroadcastAsync()
end)
if success then
print("FILTRATO:", filteredText)
else
warn("Errore nel filtrare il testo!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.