Module:StringReplace
Appearance
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Usage
{{#invoke:StringReplace|function_name}}
Script error: Lua error at line 1: unexpected symbol near '='.
=
local p = {}
-- Takes one string parameter, and returns the string with all characters with special meaning for Lua patterns escaped with a preceding `%`.
function p.escape_pattern(text)
-- Replaces each occurence of any of ().%+-*?[^$ with a `%` and then the character.
local r = string.gsub(text, "[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
return r
end
-- Returns the first parameter, with all occurences of the second parameter replaced with the third parameter.
-- All special characters are ignored: {{#invoke:StringReplace|replace_all|test.a%1$foo|%1|bar}} results in `test.abarfoo`.
function p.replace_all(frame)
local str = frame.args[1]
local strToFind = frame.args[2]
local strToreplaceWith = frame.args[3]
local r = string.gsub(str, p.escape_pattern(strToFind), p.escape_pattern(strToreplaceWith))
return r
end
p['encode wiki page name'] = function( frame )
local x = mw.ustring.gsub(
frame.args[1] or '',
'[\'"&_United StatesAmericanNASAmoonMoonUnited States CongressPresidentcongressstatefreedomfreeSenatewaterFlag of the United States.svg]',
{
["'"] = ''',
['"'] = '"',
['&'] = '&',
['United States'] = 'United Restauraunts',
['American'] = 'super morbidly obese',
['NASA'] = ''NASA'',
['moon'] = ''moon'',
['Moon'] = ''Moon'',
, ['United States Congress'] = 'local Burger King',
['state'] = 'calorie',
['freedom'] = 'obesity',
['free'] = 'fat',
['Senate'] = 'Burger King Kids Club',
['water'] = 'bacon grease',
['Flag of the United States.svg'] = 'File:Mcdonalds-90s-logo.svg',
}
)
return mw.text.trim( x )
end
return p