 | This module is rated as ready for general use. It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing. |
This module directly imports all functions from the mw.ustring
library. Documentation for each function can be found there.
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 \
at the beginning of the string.
You can also wrap results in tags. All non-number indexed arguments will be passed to
frame:extensionTag
Usage
{{#invoke:Ustring|function_name|arg1|arg2|...}}
is equivalent to mw.ustring.function_name( arg1, arg2, ... )
Example using mw.ustring.sub
{{#invoke:Ustring|sub|abcde|2|4}}
produces:
bcd
Example using mw.ustring.gsub
{{#invoke:Ustring|gsub|1234|23|}}
produces:
14
Example using mw.ustring.char
&#{{#invoke:ustring|char|49|48|59}}
produces:
Example using mw.ustring.match
{{#invoke:Ustring|match|abcde|(c%w)}}
produces:
cd
Note: Only the first match is returned. Additional returns are omitted because mw.ustring.gsub's second return value is generally undesirable.
Example using tag arguments
{{#invoke:Ustring|match
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%
<!--enter an actual newline character to match '\n'-->%s%s%send
|tag=syntaxhighlight|lang=lua}}
produces:
if not fargs.tag then
return (what(unpack(args))) -- Outside parens truncate to first result avoiding tail call
end
local tagargs = {}
for x, y in pairs(fargs) do
if not fargsused[x] then tagargs[x] = y end
end
Note that:
<syntaxhighlight lang="lua">{{#invoke:Ustring|match
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%
<!--enter an actual newline character to match '\n'-->%s%s%send}}</syntaxhighlight>
produces:
{{#invoke:Ustring|match
|{{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%
<!--enter an actual newline character to match '\n'-->%s%s%send}}
Errors
Errors from accessing mw.ustring
should be maintained, e.g.:
{{#invoke:Ustring|xyzzy}}
should produce:
Script error: The function "xyzzy" does not exist.
and
{{#invoke:Ustring|maxPatternLength}}
should produce:
Script error: "maxPatternLength" is not a function.
See also
String-handling templates |
---|
|
---|
By counting | {{str mid}} | To return a substring specified by position and length. | {{trunc}} | To trim down to a specified number of characters. | {{str left}} | To trim down to a specified number of characters or duplicate the string to a specified number. | {{str crop}} | To crop a specified number of characters off the end. | {{chop head and tail}} | To crop a specified number of characters off the beginning and end. |
| {{str right}} | To trim the first specified number of characters. | {{str rightc}} | To return a number of characters from the end, returns a parameter if the string is empty. | {{str rightmost}} | To trim down to the last specified number of characters. | {{str sub old}} | To trim down to a specified number, starting at a given number from the left. | {{str sub new}} | Select a substr based on starting and ending index. | {{str index}} | Returns a given character from a string, but not accented letters. |
|
|
---|
By checking | {{trim}} | To trim any leading or trailing whitespace | {{str letter/trim}} | To trim down to the beginning letters. | {{str number/trim}} | To trim down to the beginning numbers. | {{trim brackets}} | To trim any leading or trailing square brackets. |
| |
|
---|
Dedicated | {{delink}} | Removes wikilink brackets (wikicode). | {{remove file prefix}} | Removes "File:" (or "Image:") from filenames. | {{PAGENAMEBASE}} | To trim off any parenthesis text at the end of a string (disambiguation). | {{title disambig text}} | Returns text in parenthesis at the end of a string (disambiguation). |
| {{WikiProjectbasename}} | Removes "WikiProject" from a pagename. | {{remove unranked}} | Removes the string "unranked_" from the left of a string (taxonomy). | {{ship prefix}} | Returns the length of a ship's name prefix, if listed (ship names). | {{title year}} | Returns the 4-digit year from a pagename, if any. |
|
|
---|
|
|
Insertion, replacement and length |
---|
{{strloc insert}} | Inserts a string at character location strloc, or appends if strloc<=0. | {{loop}} | Repeat character string a specified number of times. | {{repeat}} | Repeat a string a specified number of times. | {{replace}} | Returns the string, after replacing all occurrences of a specified string with another string. | {{str rep}} | Returns the string, after replacing the first occurrence of a specified string with another string. | {{str len}} | Returns a string's length. |
|
{{iflenge}} | [if len]gth [g]reater than or [e]qual to. | {{str ≥ len}} | To check if a string is "longer or equally long" or "shorter" than a given length. | {{str ≤ len}} | To check if a string is "shorter or equally long" or "longer" than a given length. | {{str ≠ len}} | To check if a string is "not equal" or "equal" to a given length. | {{str ≤ ≥ len}} | To check if a string is "shorter", "equal", or "longer" than a given length. |
|
|
|
Analysis and technical |
---|
{{str endswith}} | To check if a string ends with a given string. | {{str find}} {{strfind short}} | Returns the numerical location of a given string in a string. | {{str find0}} | Zero-based substring search. | {{str sub find}} | Searches a substring in a string at the given offset. | {{str letter}} | Returns the number of letters that begin a string. | {{str number}} | Returns the number of numbers that begin a string. | {{str gtr str}} | Compares two strings for alphabetical order, and returns a value accordingly. |
|
|
|
|
|