string/find

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
m
m
Line 39: Line 39:
 
}}
 
}}
 
{{Example
 
{{Example
|Description=Change the world "fuck" to "****" in chat messages
+
|Description=Change the world "heck" to "****" in chat messages
 
|Code=hook.Add( "PlayerSay", "PreventTheFWord", function( ply, text )
 
|Code=hook.Add( "PlayerSay", "PreventTheFWord", function( ply, text )
local fStart, fEnd = string.find( text:lower(), "fuck" )
+
local heckStart, heckEnd = string.find( text:lower(), "heck" )
if fStart then
+
if heckStart then
local civilText = string.sub( text, 1, fStart - 1 ) .. "****" .. string.sub( text, fEnd + 1 )
+
local civilText = string.sub( text, 1, heckStart - 1 ) .. "****" .. string.sub( text, heckEnd + 1 )
 
return civilText
 
return civilText
 
end
 
end
 
end )
 
end )
 
}}
 
}}

Revision as of 20:48, 22 May 2017

 string.find( )

Contents

Description

Attempts to find the specified substring in a string, uses Patterns by default.

Arguments

string haystack

The string to search in.

Arguments

string needle

The string to find, can contain patterns if enabled.

Arguments

number startPos=1

The position to start the search from, can be negative start position will be relative to the end position.

Arguments

boolean noPatterns=false

Disable patterns.

Returns

number

Starting position of the found text

Returns

number

Ending position of found text

Returns

string

Matched text for each group if patterns are enabled and used

Examples

Example

Change the world "heck" to "****" in chat messages

hook.Add( "PlayerSay", "PreventTheFWord", function( ply, text )
	local heckStart, heckEnd = string.find( text:lower(), "heck" )
	if heckStart then
		local civilText = string.sub( text, 1, heckStart - 1 ) .. "****" .. string.sub( text, heckEnd + 1 )
		return civilText
	end
end )


Personal tools
Navigation