Module:String: Difference between revisions
(Blanked the page) |
m (Reverted edits by 121.211.106.185 (talk) to last version by 46.194.87.168) |
||
| Line 1: | Line 1: | ||
--[[ | |||
This module is intended to provide access to basic string functions. | |||
Most of the functions provided here can be invoked with named parameters, | |||
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will | |||
automatically remove any leading or trailing whitespace from the parameter. | |||
Depending on the intended use, it may be advantageous to either preserve or | |||
remove such whitespace. | |||
Global options | |||
ignore_errors: If set to 'true' or 1, any error condition will result in | |||
an empty string being returned rather than an error message. | |||
error_category: If an error occurs, specifies the name of a category to | |||
include with the error message. The default category is | |||
[Category:Errors reported by Module String]. | |||
no_category: If set to 'true' or 1, no category will be added if an error | |||
is generated. | |||
Unit tests for this module are available at Module:String/tests. | |||
]] | |||
local str = {} | |||
--[[ | |||
len | |||
This function returns the length of the target string. | |||
Usage: | |||
{{#invoke:String|len|target_string|}} | |||
OR | |||
{{#invoke:String|len|s=target_string}} | |||
Parameters | |||
s: The string whose length to report | |||
If invoked using named parameters, Mediawiki will automatically remove any leading or | |||
trailing whitespace from the target string. | |||
]] | |||
function str.len( frame ) | |||
local new_args = str._getParameters( frame.args, {'s'} ); | |||
local s = new_args['s'] or ''; | |||
return mw.ustring.len( s ) | |||
end | |||
--[[ | |||
sub | |||
This function returns a substring of the target string at specified indices. | |||
Usage: | |||
{{#invoke:String|sub|target_string|start_index|end_index}} | |||
OR | |||
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} | |||
Parameters | |||
s: The string to return a subset of | |||
i: The fist index of the substring to return, defaults to 1. | |||
j: The last index of the string to return, defaults to the last character. | |||
The first character of the string is assigned an index of 1. If either i or j | |||
is a negative value, it is interpreted the same as selecting a character by | |||
counting from the end of the string. Hence, a value of -1 is the same as | |||
selecting the last character of the string. | |||
If the requested indices are out of range for the given string, an error is | |||
reported. | |||
]] | |||
function str.sub( frame ) | |||
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ); | |||
local s = new_args['s'] or ''; | |||
local i = tonumber( new_args['i'] ) or 1; | |||
local j = tonumber( new_args['j'] ) or -1; | |||
local len = mw.ustring.len( s ); | |||
-- Convert negatives for range checking | |||
if i < 0 then | |||
i = len + i + 1; | |||
end | |||
if j < 0 then | |||
j = len + j + 1; | |||
end | |||
if i > len or j > len or i < 1 or j < 1 then | |||
return str._error( 'String subset index out of range' ); | |||
end | |||