Filtrado de texto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Aplicado a varias fuentes y entradas, filtrado de texto evita que los usuarios vean lenguaje inapropiado y información personalmente identificable, como números de teléfono. Roblox filtra automáticamente los resultados de texto comunes como mensajes que han pasado a través de chat de texto en la experiencia, pero tienes la responsabilidad de filtrar cualquier texto mostrado que no tenga un control explícito sobre</

Filtrar escenarios

El texto se puede recopilar y/o mostrar a los usuarios en una variedad de escenarios, incluidos:

  • Una experiencia que recopila los 入力 de texto de los usuarios a través de TextBox entradas, un GUI personalizado con botones como una interfaz de teclado/teclado o un modelo de teclado interactivo en el espacio 3D.

  • Una experiencia que genera palabras de personajes aleatorios y las muestra a los usuarios, ya que hay una probabilidad de que creará palabras inapropiadas.

  • Una experiencia que se conecta a un servidor web externo para obtener el contenido que se muestra en la experiencia. A menudo, no tendrás control sobre el contenido del sitio web externo y un tercero puede editar la información.

  • Una experiencia que almacena el texto, como el nombre de las mascotas de los usuarios, usando almacenamiento de datos, donde el texto almacenado puede incluir palabras inapropiadas que deben filtrarse al recuperarlos.

Proceso de filtrado

TextService:FilterStringAsync() filtra texto en la experiencia al tomar una cadena de texto y el UserId del usuario que creó el texto como entrada. Muestra un objeto de TextFilterResult que tiene dos métodos adicionales que puedes llamar en diferentes escenarios:

En el contexto de la entrada de TextBox , el siguiente ejemplo recopila la entrada en el evento Class.Toolbar.

Filtrar entrada de texto - Script del cliente

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- RemoteEvent para enviar entrada de texto al servidor para filtrar
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Manipulador de eventos por pérdida de enfoque y entrada presionada
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)
Filtrar entrada de texto - Script del servidor

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Evento remoto para recibir entrada de texto del cliente para filtrar
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
-- Se ha disparado cuando el cliente envía la entrada de la Caja de Texto
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)