|
|
| 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
| |
| if j < i then
| |
|