Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





Module:Ustring





Module  

Talk  



Language  

Watch  

View source  





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. Arguments given as |s1=, |s2=, etc, are read first, and are used as strings. All remaining numerical arguments are coerced to number type if possible, and remain strings if not. If you wish for a numerical (i.e. unnamed or "|1=", "|2=") to remain a string, you can simply escape it by inserting \ at the beginning of the string.

Note that MediaWiki will always trim whitespace from named arguments; to give arguments with surrounding whitespace you must use unnamed parameters starting with \.

How to pass inconvenient strings
To pass this... Write this Explanation
" 0123 " |\ 123 To get surrounding whitespace must use unnamed, but must precede with \ to indicate that it isn't a number.
"0123" |s1=0123 If you don't need to preserve whitespace use |s1= etc.
"0123" |1=\0123 If you don't need to preserve whitespace explicitly use |1= etc.
In another template, to pass its parameter {{{1}}}, preserving whitespace |\{{{1}}} Must provide the \ with unknown string input.
In another template, to pass its parameter {{{1}}}, stripping whitespace |s1={{{1}}}
In another template, to pass its parameter {{{1}}}, stripping whitespace |1=\{{#if:1|{{{1}}}}}

You can also wrap results in tags. All other unused 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|s1=abcde|2|4}}

produces:

bcd

Example using mw.ustring.gsub

{{#invoke:Ustring|gsub|s1=1234|23|}}

produces:

14

Example using mw.ustring.char

&#{{#invoke:ustring|char|49|48|59}}

produces:




Example using mw.ustring.match

{{#invoke:Ustring|match|s1=abcde|s2=(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
|s1={{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
|s1={{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
|s1={{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

require('strict')
return setmetatable({}, {
 __index = function(t, k)
  local what = mw.ustring[k]
  if type(what) ~= "function" then
   return what
  end
  return function(frame)
   local fargs = frame.args
   local fargsused = { tag = true }
   local args = {}
   local str_i = 1
   while fargs['s' .. str_i] do
    fargsused['s' .. str_i] = true
    args[str_i] = fargs['s' .. str_i]
    str_i = str_i + 1
   end
   for i, v in ipairs(fargs) do
    fargsused[i] = true
    args[i + str_i - 1] = tonumber(v) or v:gsub("^\\", "", 1)
   end
   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
   return frame:extensionTag{name = fargs.tag, content = what(unpack(args)), args = tagargs}
  end
 end
})

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Ustring&oldid=1208349011"
 



Last edited on 17 February 2024, at 04:51  


Languages

 


Аԥсшәа
العربية

Basa Bali


Cebuano
فارسی

Ilokano
Bahasa Indonesia
Kurdî
Lietuvių

Bahasa Melayu

Нохчийн
Norsk nynorsk
Oʻzbekcha / ўзбекча

ि
Português

Simple English
Slovenščina
کوردی
Српски / srpski
ி
 

Türkçe
Tiếng Vit


 

Wikipedia


This page was last edited on 17 February 2024, at 04:51 (UTC).

Content is available under CC BY-SA 4.0 unless otherwise noted.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Terms of Use

Desktop