<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pool.calebcooper.ie/index.php?action=history&amp;feed=atom&amp;title=Module%3AUstring%2Fdoc</id>
	<title>Module:Ustring/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pool.calebcooper.ie/index.php?action=history&amp;feed=atom&amp;title=Module%3AUstring%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://pool.calebcooper.ie/index.php?title=Module:Ustring/doc&amp;action=history"/>
	<updated>2026-04-08T06:51:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://pool.calebcooper.ie/index.php?title=Module:Ustring/doc&amp;diff=11786&amp;oldid=prev</id>
		<title>Caleb Cooper: Created page with &quot;{{Module rating |release&lt;!-- Values:  pre-alpha • alpha • beta • release • protected  --  If a rating not needed/relevant, delete this template call --&gt;}} &lt;!-- Please...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pool.calebcooper.ie/index.php?title=Module:Ustring/doc&amp;diff=11786&amp;oldid=prev"/>
		<updated>2020-10-16T11:24:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Module rating |release&amp;lt;!-- Values:  pre-alpha • alpha • beta • release • protected  --  If a rating not needed/relevant, delete this template call --&amp;gt;}} &amp;lt;!-- Please...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Module rating |release&amp;lt;!-- Values:  pre-alpha • alpha • beta • release • protected  --  If a rating not needed/relevant, delete this template call --&amp;gt;}}&lt;br /&gt;
&amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&amp;gt;&lt;br /&gt;
This module directly imports all functions from the {{luaref|Ustring library|mw.ustring}} library. Documentation for each function can be found there.&lt;br /&gt;
&lt;br /&gt;
The module takes an indefinite number of arguments. All arguments are coerced as number type if possible. If you wish for something to remain a string, you can simply escape it by insert &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt; at the beginning of the string.&lt;br /&gt;
&lt;br /&gt;
You can also wrap results in tags. All non-number indexed arguments will be passed to {{luaref|frame:extensionTag}}&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;#invoke:{{BASEPAGENAME}}|&amp;#039;&amp;#039;function_name&amp;#039;&amp;#039;|arg1|arg2|...}}&amp;lt;/code&amp;gt; is equivalent to {{luaref|Ustring library|mw.ustring.&amp;#039;&amp;#039;function_name&amp;#039;&amp;#039;|args=arg1, arg2, ...}}&lt;br /&gt;
&lt;br /&gt;
===Example using mw.ustring.sub===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Ustring|sub|abcde|2|4}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces:&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Ustring|sub|abcde|2|4}}&lt;br /&gt;
&lt;br /&gt;
===Example using mw.ustring.gsub===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Ustring|gsub|1234|23|}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces:&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Ustring|gsub|1234|23|}}&lt;br /&gt;
&lt;br /&gt;
===Example using mw.ustring.char===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;amp;#{{#invoke:ustring|char|49|48|59}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;amp;#{{#invoke:ustring|char|49|48|59}}&lt;br /&gt;
&lt;br /&gt;
This is nice for escaping character sequences in other modules; for example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
p = {}&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
  local str = &amp;#039;1-2-2{{#invoke:ustring|char|45}}1-3&amp;#039;&lt;br /&gt;
  return frame:preprocess(str:gsub(&amp;#039;-&amp;#039;, &amp;#039;/&amp;#039;))-- == &amp;#039;1/2/2-1/3&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example using mw.ustring.match===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Ustring|match|abcde|(c%w)}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
produces:&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Ustring|match|abcde|(c%w)}}&lt;br /&gt;
&lt;br /&gt;
Note: Only the first match is returned. Additional returns are omitted because mw.ustring.gsub&amp;#039;s second return value is generally undesirable.&lt;br /&gt;
&lt;br /&gt;
===Example using tag arguments===&lt;br /&gt;
&amp;lt;pre&amp;gt;{{#invoke:Ustring|match&lt;br /&gt;
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%&lt;br /&gt;
&amp;lt;!--enter an actual newline character to match &amp;#039;\n&amp;#039;--&amp;gt;%s%s%send&lt;br /&gt;
|tag=syntaxhighlight|lang=lua}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
produces:&lt;br /&gt;
{{#invoke:Ustring|match&lt;br /&gt;
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%&lt;br /&gt;
&amp;lt;!--enter an actual newline character to match &amp;#039;\n&amp;#039;--&amp;gt;%s%s%send&lt;br /&gt;
|tag=syntaxhighlight|lang=lua}}&lt;br /&gt;
&lt;br /&gt;
Note that:&lt;br /&gt;
{{#tag:pre|&amp;lt;nowiki&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;{{#invoke:Ustring|match&lt;br /&gt;
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%&lt;br /&gt;
&amp;lt;!--enter an actual newline character to match &amp;#039;\n&amp;#039;--&amp;gt;%s%s%send}}&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
produces:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;{{#invoke:Ustring|match&lt;br /&gt;
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%&lt;br /&gt;
&amp;lt;!--enter an actual newline character to match &amp;#039;\n&amp;#039;--&amp;gt;%s%s%send}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
Errors from accessing {{luaref|Ustring library|mw.ustring}} should be maintained, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Ustring|xyzzy}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
should produce:&lt;br /&gt;
&lt;br /&gt;
{{script error|Script error: The function &amp;quot;xyzzy&amp;quot; does not exist.}}&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Ustring|maxPatternLength}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
should produce:&lt;br /&gt;
&lt;br /&gt;
{{script error|Script error: &amp;quot;maxPatternLength&amp;quot; is not a function.}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Module:String]]&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
&amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Caleb Cooper</name></author>
	</entry>
</feed>