Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/lbfactory/LBFactory.php on line 697

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::open($save_path, $session_name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 180

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 195

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::read($id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 209

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::write($id, $dataStr) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 237

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::destroy($id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 343

Deprecated: Return type of MediaWiki\Session\PHPSessionHandler::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/PHPSessionHandler.php on line 364

Deprecated: Return type of MediaWiki\Session\Session::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 625

Deprecated: Return type of MediaWiki\Session\Session::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 631

Deprecated: Return type of MediaWiki\Session\Session::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 643

Deprecated: Return type of MediaWiki\Session\Session::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 637

Deprecated: Return type of MediaWiki\Session\Session::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 655

Deprecated: Return type of MediaWiki\Session\Session::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 649

Deprecated: Return type of MediaWiki\Session\Session::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 665

Deprecated: Return type of & MediaWiki\Session\Session::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 678

Deprecated: Return type of MediaWiki\Session\Session::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 688

Deprecated: Return type of MediaWiki\Session\Session::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php on line 693

Deprecated: MapCacheLRU implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/MapCacheLRU.php on line 37

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: Return type of Wikimedia\Rdbms\IResultWrapper::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php on line 70

Deprecated: Return type of Wikimedia\Rdbms\IResultWrapper::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php on line 80

Deprecated: Return type of Wikimedia\Rdbms\IResultWrapper::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php on line 75

Deprecated: Return type of Wikimedia\Rdbms\ResultWrapper::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php on line 116

Deprecated: Return type of Wikimedia\Rdbms\ResultWrapper::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php on line 89

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: Message implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /disk/data1/ccarh-project/ccarhwiki/website/includes/Message.php on line 160

Deprecated: RawMessage implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /disk/data1/ccarh-project/ccarhwiki/website/includes/RawMessage.php on line 34

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: Creation of dynamic property RequestContext::$recursion is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/context/RequestContext.php on line 328

Deprecated: ctype_digit(): Argument of type bool will be interpreted as string in the future in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/BagOStuff.php on line 735

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: Creation of dynamic property Parser::$mPreprocessorClass is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/parser/Parser.php on line 314

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: Creation of dynamic property Parser::$extCite is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/extensions/Cite/includes/Cite.php on line 1293

Deprecated: Creation of dynamic property PPDStack::$accum is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/parser/Preprocessor_DOM.php on line 847

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/Feed.php on line 294

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/Feed.php on line 300

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/WebResponse.php on line 72

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/WebResponse.php on line 72

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/WebResponse.php on line 72

Warning: Cannot modify header information - headers already sent by (output started at /disk/data1/ccarh-project/ccarhwiki/website/includes/session/Session.php:48) in /disk/data1/ccarh-project/ccarhwiki/website/includes/WebResponse.php on line 72

Deprecated: ctype_digit(): Argument of type bool will be interpreted as string in the future in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/BagOStuff.php on line 735
https://wiki.ccarh.org/index.php?action=history&feed=atom&title=Module%3AString Module:String - Revision history 2024-12-04T08:47:57Z Revision history for this page on the wiki MediaWiki 1.33.0
Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Warning: Resource ID#3 used as offset, casting to integer (3) in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/MemcachedClient.php on line 545

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/rdbms/database/Database.php on line 618

Deprecated: ctype_digit(): Argument of type bool will be interpreted as string in the future in /disk/data1/ccarh-project/ccarhwiki/website/includes/libs/objectcache/BagOStuff.php on line 735
https://wiki.ccarh.org/index.php?title=Module:String&diff=3929&oldid=prev Craig: Created page with "--[[ 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..." 2013-03-11T22:48:10Z <p>Created page with &quot;--[[ 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...&quot;</p> <p><b>New page</b></p><div>--[[ <br /> <br /> This module is intended to provide access to basic string functions.<br /> <br /> Most of the functions provided here can be invoked with named parameters, <br /> unnamed parameters, or a mixture. If named parameters are used, Mediawiki will <br /> automatically remove any leading or trailing whitespace from the parameter. <br /> Depending on the intended use, it may be advantageous to either preserve or<br /> remove such whitespace.<br /> <br /> Global options<br /> ignore_errors: If set to &#039;true&#039; or 1, any error condition will result in <br /> an empty string being returned rather than an error message. <br /> <br /> error_category: If an error occurs, specifies the name of a category to <br /> include with the error message. The default category is <br /> [Category:Errors reported by Module String].<br /> <br /> no_category: If set to &#039;true&#039; or 1, no category will be added if an error<br /> is generated.<br /> <br /> Unit tests for this module are available at Module:String/tests.<br /> ]]<br /> <br /> local str = {}<br /> <br /> --[[<br /> len<br /> <br /> This function returns the length of the target string.<br /> <br /> Usage:<br /> {{#invoke:String|len|target_string|}}<br /> OR<br /> {{#invoke:String|len|s=target_string}}<br /> <br /> Parameters<br /> s: The string whose length to report<br /> <br /> If invoked using named parameters, Mediawiki will automatically remove any leading or<br /> trailing whitespace from the target string. <br /> ]]<br /> function str.len( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;s&#039;} );<br /> local s = new_args[&#039;s&#039;] or &#039;&#039;;<br /> return mw.ustring.len( s )<br /> end<br /> <br /> --[[<br /> sub<br /> <br /> This function returns a substring of the target string at specified indices.<br /> <br /> Usage:<br /> {{#invoke:String|sub|target_string|start_index|end_index}}<br /> OR<br /> {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}<br /> <br /> Parameters<br /> s: The string to return a subset of<br /> i: The fist index of the substring to return, defaults to 1.<br /> j: The last index of the string to return, defaults to the last character.<br /> <br /> The first character of the string is assigned an index of 1. If either i or j<br /> is a negative value, it is interpreted the same as selecting a character by <br /> counting from the end of the string. Hence, a value of -1 is the same as <br /> selecting the last character of the string.<br /> <br /> If the requested indices are out of range for the given string, an error is <br /> reported.<br /> ]]<br /> function str.sub( frame )<br /> local new_args = str._getParameters( frame.args, { &#039;s&#039;, &#039;i&#039;, &#039;j&#039; } );<br /> local s = new_args[&#039;s&#039;] or &#039;&#039;;<br /> local i = tonumber( new_args[&#039;i&#039;] ) or 1;<br /> local j = tonumber( new_args[&#039;j&#039;] ) or -1;<br /> <br /> local len = mw.ustring.len( s );<br /> <br /> -- Convert negatives for range checking<br /> if i &lt; 0 then<br /> i = len + i + 1;<br /> end<br /> if j &lt; 0 then<br /> j = len + j + 1;<br /> end<br /> <br /> if i &gt; len or j &gt; len or i &lt; 1 or j &lt; 1 then<br /> return str._error( &#039;String subset index out of range&#039; );<br /> end<br /> if j &lt; i then<br /> return str._error( &#039;String subset indices out of order&#039; );<br /> end<br /> <br /> return mw.ustring.sub( s, i, j )<br /> end<br /> <br /> --[[<br /> This function implements that features of {{str sub old}} and is kept in order<br /> to maintain these older templates.<br /> ]]<br /> function str.sublength( frame )<br /> local i = tonumber( frame.args.i ) or 0<br /> local len = tonumber( frame.args.len )<br /> return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )<br /> end<br /> <br /> --[[<br /> match<br /> <br /> This function returns a substring from the source string that matches a <br /> specified pattern.<br /> <br /> Usage:<br /> {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}<br /> OR<br /> {{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index<br /> |match=match_number|plain=plain_flag|nomatch=nomatch_output}}<br /> <br /> Parameters<br /> s: The string to search<br /> pattern: The pattern or string to find within the string<br /> start: The index within the source string to start the search. The first<br /> character of the string has index 1. Defaults to 1.<br /> match: In some cases it may be possible to make multiple matches on a single <br /> string. This specifies which match to return, where the first match is <br /> match= 1. If a negative number is specified then a match is returned <br /> counting from the last match. Hence match = -1 is the same as requesting<br /> the last match. Defaults to 1.<br /> plain: A flag indicating that the pattern should be understood as plain<br /> text. Defaults to false.<br /> nomatch: If no match is found, output the &quot;nomatch&quot; value rather than an error.<br /> <br /> If invoked using named parameters, Mediawiki will automatically remove any leading or<br /> trailing whitespace from each string. In some circumstances this is desirable, in <br /> other cases one may want to preserve the whitespace.<br /> <br /> If the match_number or start_index are out of range for the string being queried, then<br /> this function generates an error. An error is also generated if no match is found.<br /> If one adds the parameter ignore_errors=true, then the error will be suppressed and <br /> an empty string will be returned on any failure.<br /> <br /> For information on constructing Lua patterns, a form of [regular expression], see:<br /> <br /> * http://www.lua.org/manual/5.1/manual.html#5.4.1<br /> * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns<br /> * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns<br /> <br /> ]]<br /> function str.match( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;s&#039;, &#039;pattern&#039;, &#039;start&#039;, &#039;match&#039;, &#039;plain&#039;, &#039;nomatch&#039;} );<br /> local s = new_args[&#039;s&#039;] or &#039;&#039;;<br /> local start = tonumber( new_args[&#039;start&#039;] ) or 1;<br /> local plain_flag = str._getBoolean( new_args[&#039;plain&#039;] or false );<br /> local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;;<br /> local match_index = math.floor( tonumber(new_args[&#039;match&#039;]) or 1 );<br /> local nomatch = new_args[&#039;nomatch&#039;];<br /> <br /> if s == &#039;&#039; then<br /> return str._error( &#039;Target string is empty&#039; );<br /> end<br /> if pattern == &#039;&#039; then<br /> return str._error( &#039;Pattern string is empty&#039; );<br /> end<br /> if math.abs(start) &lt; 1 or math.abs(start) &gt; mw.ustring.len( s ) then<br /> return str._error( &#039;Requested start is out of range&#039; );<br /> end<br /> if match_index == 0 then<br /> return str._error( &#039;Match index is out of range&#039; );<br /> end<br /> if plain_flag then<br /> pattern = str._escapePattern( pattern );<br /> end<br /> <br /> local result<br /> if match_index == 1 then<br /> -- Find first match is simple case<br /> result = mw.ustring.match( s, pattern, start )<br /> else<br /> if start &gt; 1 then<br /> s = mw.ustring.sub( s, start );<br /> end<br /> <br /> local iterator = mw.ustring.gmatch(s, pattern);<br /> if match_index &gt; 0 then<br /> -- Forward search<br /> for w in iterator do<br /> match_index = match_index - 1;<br /> if match_index == 0 then<br /> result = w;<br /> break;<br /> end<br /> end <br /> else<br /> -- Reverse search<br /> local result_table = {};<br /> local count = 1;<br /> for w in iterator do<br /> result_table[count] = w;<br /> count = count + 1;<br /> end<br /> <br /> result = result_table[ count + match_index ]; <br /> end<br /> end <br /> <br /> if result == nil then<br /> if nomatch == nil then<br /> return str._error( &#039;Match not found&#039; );<br /> else<br /> return nomatch;<br /> end<br /> else<br /> return result;<br /> end<br /> end<br /> <br /> --[[<br /> pos<br /> <br /> This function returns a single character from the target string at position pos.<br /> <br /> Usage:<br /> {{#invoke:String|pos|target_string|index_value}}<br /> OR<br /> {{#invoke:String|pos|target=target_string|pos=index_value}}<br /> <br /> Parameters<br /> target: The string to search<br /> pos: The index for the character to return<br /> <br /> If invoked using named parameters, Mediawiki will automatically remove any leading or<br /> trailing whitespace from the target string. In some circumstances this is desirable, in <br /> other cases one may want to preserve the whitespace.<br /> <br /> The first character has an index value of 1.<br /> <br /> If one requests a negative value, this function will select a character by counting backwards <br /> from the end of the string. In other words pos = -1 is the same as asking for the last character.<br /> <br /> A requested value of zero, or a value greater than the length of the string returns an error.<br /> ]]<br /> function str.pos( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;target&#039;, &#039;pos&#039;} );<br /> local target_str = new_args[&#039;target&#039;] or &#039;&#039;;<br /> local pos = tonumber( new_args[&#039;pos&#039;] ) or 0;<br /> <br /> if pos == 0 or math.abs(pos) &gt; mw.ustring.len( target_str ) then<br /> return str._error( &#039;String index out of range&#039; );<br /> end <br /> <br /> return mw.ustring.sub( target_str, pos, pos );<br /> end<br /> <br /> --[[<br /> str_find<br /> <br /> This function duplicates the behavior of {{str_find}}, including all of its quirks.<br /> This is provided in order to support existing templates, but is NOT RECOMMENDED for <br /> new code and templates. New code is recommended to use the &quot;find&quot; function instead.<br /> <br /> Returns the first index in &quot;source&quot; that is a match to &quot;target&quot;. Indexing is 1-based,<br /> and the function returns -1 if the &quot;target&quot; string is not present in &quot;source&quot;.<br /> <br /> Important Note: If the &quot;target&quot; string is empty / missing, this function returns a<br /> value of &quot;1&quot;, which is generally unexpected behavior, and must be accounted for<br /> separatetly.<br /> ]]<br /> function str.str_find( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;} );<br /> local source_str = new_args[&#039;source&#039;] or &#039;&#039;;<br /> local target_str = new_args[&#039;target&#039;] or &#039;&#039;;<br /> <br /> if target_str == &#039;&#039; then<br /> return 1;<br /> end <br /> <br /> local start = mw.ustring.find( source_str, target_str, 1, true )<br /> if start == nil then<br /> start = -1<br /> end<br /> <br /> return start<br /> end<br /> <br /> --[[<br /> find<br /> <br /> This function allows one to search for a target string or pattern within another<br /> string.<br /> <br /> Usage:<br /> {{#invoke:String|find|source_str|target_string|start_index|plain_flag}}<br /> OR<br /> {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}<br /> <br /> Parameters<br /> source: The string to search<br /> target: The string or pattern to find within source<br /> start: The index within the source string to start the search, defaults to 1<br /> plain: Boolean flag indicating that target should be understood as plain<br /> text and not as a Lua style regular expression, defaults to true<br /> <br /> If invoked using named parameters, Mediawiki will automatically remove any leading or<br /> trailing whitespace from the parameter. In some circumstances this is desirable, in <br /> other cases one may want to preserve the whitespace.<br /> <br /> This function returns the first index &gt;= &quot;start&quot; where &quot;target&quot; can be found <br /> within &quot;source&quot;. Indices are 1-based. If &quot;target&quot; is not found, then this <br /> function returns 0. If either &quot;source&quot; or &quot;target&quot; are missing / empty, this<br /> function also returns 0.<br /> <br /> This function should be safe for UTF-8 strings.<br /> ]]<br /> function str.find( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;, &#039;start&#039;, &#039;plain&#039; } ); <br /> local source_str = new_args[&#039;source&#039;] or &#039;&#039;;<br /> local pattern = new_args[&#039;target&#039;] or &#039;&#039;;<br /> local start_pos = tonumber(new_args[&#039;start&#039;]) or 1;<br /> local plain = new_args[&#039;plain&#039;] or true;<br /> <br /> if source_str == &#039;&#039; or pattern == &#039;&#039; then<br /> return 0;<br /> end <br /> <br /> plain = str._getBoolean( plain );<br /> <br /> local start = mw.ustring.find( source_str, pattern, start_pos, plain )<br /> if start == nil then<br /> start = 0<br /> end<br /> <br /> return start<br /> end<br /> <br /> --[[<br /> replace<br /> <br /> This function allows one to replace a target string or pattern within another<br /> string.<br /> <br /> Usage:<br /> {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}<br /> OR<br /> {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|<br /> count=replacement_count|plain=plain_flag}}<br /> <br /> Parameters<br /> source: The string to search<br /> pattern: The string or pattern to find within source<br /> replace: The replacement text<br /> count: The number of occurences to replace, defaults to all.<br /> plain: Boolean flag indicating that pattern should be understood as plain<br /> text and not as a Lua style regular expression, defaults to true <br /> ]]<br /> function str.replace( frame )<br /> local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;pattern&#039;, &#039;replace&#039;, &#039;count&#039;, &#039;plain&#039; } ); <br /> local source_str = new_args[&#039;source&#039;] or &#039;&#039;;<br /> local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;;<br /> local replace = new_args[&#039;replace&#039;] or &#039;&#039;;<br /> local count = tonumber( new_args[&#039;count&#039;] );<br /> local plain = new_args[&#039;plain&#039;] or true;<br /> <br /> if source_str == &#039;&#039; or pattern == &#039;&#039; then<br /> return source_str;<br /> end <br /> plain = str._getBoolean( plain );<br /> <br /> if plain then<br /> pattern = str._escapePattern( pattern );<br /> replace = mw.ustring.gsub( replace, &quot;%%&quot;, &quot;%%%%&quot; ); --Only need to escape replacement sequences.<br /> end<br /> <br /> local result;<br /> <br /> if count ~= nil then<br /> result = mw.ustring.gsub( source_str, pattern, replace, count );<br /> else<br /> result = mw.ustring.gsub( source_str, pattern, replace );<br /> end <br /> <br /> return result;<br /> end<br /> <br /> --[[<br /> Helper function that populates the argument list given that user may need to use a mix of<br /> named and unnamed parameters. This is relevant because named parameters are not<br /> identical to unnamed parameters due to string trimming, and when dealing with strings<br /> we sometimes want to either preserve or remove that whitespace depending on the application.<br /> ]]<br /> function str._getParameters( frame_args, arg_list )<br /> local new_args = {};<br /> local index = 1;<br /> local value;<br /> <br /> for i,arg in ipairs( arg_list ) do<br /> value = frame_args[arg]<br /> if value == nil then<br /> value = frame_args[index];<br /> index = index + 1;<br /> end<br /> new_args[arg] = value;<br /> end<br /> <br /> return new_args;<br /> end <br /> <br /> --[[<br /> Helper function to handle error messages.<br /> ]]<br /> function str._error( error_str )<br /> local frame = mw.getCurrentFrame();<br /> local error_category = frame.args.error_category or &#039;Errors reported by Module String&#039;;<br /> local ignore_errors = frame.args.ignore_errors or false;<br /> local no_category = frame.args.no_category or false;<br /> <br /> if str._getBoolean(ignore_errors) then<br /> return &#039;&#039;;<br /> end<br /> <br /> local error_str = &#039;&lt;strong class=&quot;error&quot;&gt;String Module Error: &#039; .. error_str .. &#039;&lt;/strong&gt;&#039;;<br /> if error_category ~= &#039;&#039; and not str._getBoolean( no_category ) then<br /> error_str = &#039;[[Category:&#039; .. error_category .. &#039;]]&#039; .. error_str;<br /> end <br /> <br /> return error_str;<br /> end<br /> <br /> --[[<br /> Helper Function to interpret boolean strings<br /> ]]<br /> function str._getBoolean( boolean_str )<br /> local boolean_value;<br /> <br /> if type( boolean_str ) == &#039;string&#039; then<br /> boolean_str = boolean_str:lower();<br /> if boolean_str == &#039;false&#039; or boolean_str == &#039;no&#039; or boolean_str == &#039;0&#039; <br /> or boolean_str == &#039;&#039; then<br /> boolean_value = false;<br /> else<br /> boolean_value = true;<br /> end <br /> elseif type( boolean_str ) == &#039;boolean&#039; then<br /> boolean_value = boolean_str;<br /> else<br /> error( &#039;No boolean value found&#039; );<br /> end <br /> return boolean_value<br /> end<br /> <br /> --[[<br /> Helper function that escapes all pattern characters so that they will be treated <br /> as plain text.<br /> ]]<br /> function str._escapePattern( pattern_str )<br /> return mw.ustring.gsub( pattern_str, &quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&quot;, &quot;%%%1&quot; );<br /> end<br /> <br /> return str</div> Craig