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, filtro del testo impedisce agli utenti di visualizzare informazioni linguistiche e personalmente identificabili come i numeri di telefono. Roblox filtra automaticamente le uscite del testo comuni come i messaggi che sono passati attraverso chat di testo in-experience, ma sei responsabile del filtro di qualsiasi testo visualizzato che non hai un controllo esplicito .

Filtra scenari

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

  • Un'esperienza che raccoglie gli input di testo degli utenti attraverso Class.Toolbar entradi, un'interfaccia GUI personalizzata con pulsanti come un'interfaccia touch / keypad o un modello di tastiera interattiva nello Spazio3D.

  • Un'esperienza che genera parole da personaggi casuali e le mostra agli utenti, poiché c'è una probabilità che creerà parole non appropriate.

  • Un'esperienza che si connette a un server web esterno per ottenere il contenuto visualizzato in-experience. Di solito non avrai il controllo sul contenuto del sito web esterno e un terzo può modificare le informazioni.

  • Un'esperienza che memorizza il testo, come il nome degli animali domestici degli utenti, utilizzando archivi di dati, in cui il testo memorizzato potrebbe includere parole non appropriate che dovrebbero essere filtrate quando vengono recuperati.

Processo di filtro

TextService:FilterStringAsync() i filtri nel testo in-experience facendo una stringa di testo e il UserId del utente che ha creato il testo come input. Ritorna un oggetto TextFilterResult che ha due metodi aggiuntivi che puoi chiamare in diversi scenari:

Nel contesto di TextBox input, l'esempio seguente raccoglie l'input sul Class.Toolbar.

Filtrare l'input del testo - Script del 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 del testo al server per il filtro
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Handling evento per la perdita di focus e l'inserimento di essere premuto
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("SUBMITTED:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Filtrare l'input del testo - Server Script

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- RemoteEvent per ricevere l'input del testo dal client per il filtro
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("Error generating TextFilterResult:", errorMessage)
end
end
-- Si esegue quando il client invia l'input dalla 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("FILTERED:", filteredText)
else
warn("Error filtering text!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)