CINXE.COM
Module:String - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Module:String - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"a21eccb1-c322-4240-bd51-80773a0c4ed9","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:String","wgTitle":"String","wgCurRevisionId":1243840019,"wgRevisionId":1243840019,"wgArticleId":38569505,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Wikipedia fully protected modules","Modules subject to page protection","Modules that add a tracking category","Modules that manipulate strings"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:String","wgRelevantArticleId":38569505,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["sysop"],"wgRestrictionMove":["sysop"],"wgNoticeProject":"wikipedia", "wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q7253814","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false, "wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging", "ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","wikibase.client.vector-2022","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Module:String - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Module:String"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Module:String"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Module_String rootpage-Module_String skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Module%3AString" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Module%3AString" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Module%3AString" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Module%3AString" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Global_options" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Global_options"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Global options</span> </div> </a> <ul id="toc-Global_options-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-len" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#len"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>len</span> </div> </a> <ul id="toc-len-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-sub" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#sub"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>sub</span> </div> </a> <ul id="toc-sub-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-sublength" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#sublength"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>sublength</span> </div> </a> <ul id="toc-sublength-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-match" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#match"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>match</span> </div> </a> <ul id="toc-match-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-pos" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#pos"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>pos</span> </div> </a> <ul id="toc-pos-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-str_find" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#str_find"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>str_find</span> </div> </a> <ul id="toc-str_find-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-find" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#find"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>find</span> </div> </a> <ul id="toc-find-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-replace_(gsub)" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#replace_(gsub)"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>replace (gsub)</span> </div> </a> <ul id="toc-replace_(gsub)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-rep" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#rep"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>rep</span> </div> </a> <ul id="toc-rep-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-escapePattern" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#escapePattern"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>escapePattern</span> </div> </a> <ul id="toc-escapePattern-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-count" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#count"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>count</span> </div> </a> <ul id="toc-count-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-join" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#join"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>join</span> </div> </a> <ul id="toc-join-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-endswith" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#endswith"> <div class="vector-toc-text"> <span class="vector-toc-numb">14</span> <span>endswith</span> </div> </a> <ul id="toc-endswith-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">15</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">Module</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">String</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 256 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-256" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">256 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ace mw-list-item"><a href="https://ace.wikipedia.org/wiki/Modul:String" title="Modul:String – Acehnese" lang="ace" hreflang="ace" data-title="Modul:String" data-language-autonym="Acèh" data-language-local-name="Acehnese" class="interlanguage-link-target"><span>Acèh</span></a></li><li class="interlanguage-link interwiki-kbd mw-list-item"><a href="https://kbd.wikipedia.org/wiki/Module:String" title="Module:String – Kabardian" lang="kbd" hreflang="kbd" data-title="Module:String" data-language-autonym="Адыгэбзэ" data-language-local-name="Kabardian" class="interlanguage-link-target"><span>Адыгэбзэ</span></a></li><li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Module:String" title="Module:String – Afrikaans" lang="af" hreflang="af" data-title="Module:String" data-language-autonym="Afrikaans" data-language-local-name="Afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-als mw-list-item"><a href="https://als.wikipedia.org/wiki/Modul:Str" title="Modul:Str – Alemannic" lang="gsw" hreflang="gsw" data-title="Modul:Str" data-language-autonym="Alemannisch" data-language-local-name="Alemannic" class="interlanguage-link-target"><span>Alemannisch</span></a></li><li class="interlanguage-link interwiki-alt mw-list-item"><a href="https://alt.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Southern Altai" lang="alt" hreflang="alt" data-title="Модуль:String" data-language-autonym="Алтай тил" data-language-local-name="Southern Altai" class="interlanguage-link-target"><span>Алтай тил</span></a></li><li class="interlanguage-link interwiki-am mw-list-item"><a href="https://am.wikipedia.org/wiki/Module:String" title="Module:String – Amharic" lang="am" hreflang="am" data-title="Module:String" data-language-autonym="አማርኛ" data-language-local-name="Amharic" class="interlanguage-link-target"><span>አማርኛ</span></a></li><li class="interlanguage-link interwiki-smn mw-list-item"><a href="https://smn.wikipedia.org/wiki/Mooduul:String" title="Mooduul:String – Inari Sami" lang="smn" hreflang="smn" data-title="Mooduul:String" data-language-autonym="Anarâškielâ" data-language-local-name="Inari Sami" class="interlanguage-link-target"><span>Anarâškielâ</span></a></li><li class="interlanguage-link interwiki-ang mw-list-item"><a href="https://ang.wikipedia.org/wiki/Module:String" title="Module:String – Old English" lang="ang" hreflang="ang" data-title="Module:String" data-language-autonym="Ænglisc" data-language-local-name="Old English" class="interlanguage-link-target"><span>Ænglisc</span></a></li><li class="interlanguage-link interwiki-ab mw-list-item"><a href="https://ab.wikipedia.org/wiki/%D0%90%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Амодуль:String – Abkhazian" lang="ab" hreflang="ab" data-title="Амодуль:String" data-language-autonym="Аԥсшәа" data-language-local-name="Abkhazian" class="interlanguage-link-target"><span>Аԥсшәа</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:String" title="وحدة:String – Arabic" lang="ar" hreflang="ar" data-title="وحدة:String" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-hyw mw-list-item"><a href="https://hyw.wikipedia.org/wiki/%D5%84%D5%B8%D5%A4%D5%B8%D6%82%D5%AC:String" title="Մոդուլ:String – Western Armenian" lang="hyw" hreflang="hyw" data-title="Մոդուլ:String" data-language-autonym="Արեւմտահայերէն" data-language-local-name="Western Armenian" class="interlanguage-link-target"><span>Արեւմտահայերէն</span></a></li><li class="interlanguage-link interwiki-frp mw-list-item"><a href="https://frp.wikipedia.org/wiki/Module:String" title="Module:String – Arpitan" lang="frp" hreflang="frp" data-title="Module:String" data-language-autonym="Arpetan" data-language-local-name="Arpitan" class="interlanguage-link-target"><span>Arpetan</span></a></li><li class="interlanguage-link interwiki-as mw-list-item"><a href="https://as.wikipedia.org/wiki/Module:String" title="Module:String – Assamese" lang="as" hreflang="as" data-title="Module:String" data-language-autonym="অসমীয়া" data-language-local-name="Assamese" class="interlanguage-link-target"><span>অসমীয়া</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/M%C3%B3dulu:String" title="Módulu:String – Asturian" lang="ast" hreflang="ast" data-title="Módulu:String" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-atj mw-list-item"><a href="https://atj.wikipedia.org/wiki/Aitapihikewin:String" title="Aitapihikewin:String – Atikamekw" lang="atj" hreflang="atj" data-title="Aitapihikewin:String" data-language-autonym="Atikamekw" data-language-local-name="Atikamekw" class="interlanguage-link-target"><span>Atikamekw</span></a></li><li class="interlanguage-link interwiki-awa mw-list-item"><a href="https://awa.wikipedia.org/wiki/%E0%A4%85%E0%A4%A8%E0%A5%81%E0%A4%96%E0%A4%82%E0%A4%A1:String" title="अनुखंड:String – Awadhi" lang="awa" hreflang="awa" data-title="अनुखंड:String" data-language-autonym="अवधी" data-language-local-name="Awadhi" class="interlanguage-link-target"><span>अवधी</span></a></li><li class="interlanguage-link interwiki-gn mw-list-item"><a href="https://gn.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Guarani" lang="gn" hreflang="gn" data-title="Módulo:String" data-language-autonym="Avañe'ẽ" data-language-local-name="Guarani" class="interlanguage-link-target"><span>Avañe'ẽ</span></a></li><li class="interlanguage-link interwiki-av mw-list-item"><a href="https://av.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Avaric" lang="av" hreflang="av" data-title="Модуль:String" data-language-autonym="Авар" data-language-local-name="Avaric" class="interlanguage-link-target"><span>Авар</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Modul:String" title="Modul:String – Azerbaijani" lang="az" hreflang="az" data-title="Modul:String" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D9%85%D8%A7%DA%98%D9%88%D9%84:String" title="ماژول:String – South Azerbaijani" lang="azb" hreflang="azb" data-title="ماژول:String" data-language-autonym="تۆرکجه" data-language-local-name="South Azerbaijani" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-ban mw-list-item"><a href="https://ban.wikipedia.org/wiki/Modul:String" title="Modul:String – Balinese" lang="ban" hreflang="ban" data-title="Modul:String" data-language-autonym="Basa Bali" data-language-local-name="Balinese" class="interlanguage-link-target"><span>Basa Bali</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%AE%E0%A6%A1%E0%A6%BF%E0%A6%89%E0%A6%B2:String" title="মডিউল:String – Bangla" lang="bn" hreflang="bn" data-title="মডিউল:String" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-bjn mw-list-item"><a href="https://bjn.wikipedia.org/wiki/Modul:String" title="Modul:String – Banjar" lang="bjn" hreflang="bjn" data-title="Modul:String" data-language-autonym="Banjar" data-language-local-name="Banjar" class="interlanguage-link-target"><span>Banjar</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Minnan" lang="nan" hreflang="nan" data-title="模組:String" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="Minnan" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-map-bms mw-list-item"><a href="https://map-bms.wikipedia.org/wiki/Modhul:String" title="Modhul:String – Banyumasan" lang="jv-x-bms" hreflang="jv-x-bms" data-title="Modhul:String" data-language-autonym="Basa Banyumasan" data-language-local-name="Banyumasan" class="interlanguage-link-target"><span>Basa Banyumasan</span></a></li><li class="interlanguage-link interwiki-ba mw-list-item"><a href="https://ba.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Bashkir" lang="ba" hreflang="ba" data-title="Модуль:String" data-language-autonym="Башҡортса" data-language-local-name="Bashkir" class="interlanguage-link-target"><span>Башҡортса</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Belarusian" lang="be" hreflang="be" data-title="Модуль:String" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Модуль:String" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bh mw-list-item"><a href="https://bh.wikipedia.org/wiki/Module:String" title="Module:String – Bhojpuri" lang="bh" hreflang="bh" data-title="Module:String" data-language-autonym="भोजपुरी" data-language-local-name="Bhojpuri" class="interlanguage-link-target"><span>भोजपुरी</span></a></li><li class="interlanguage-link interwiki-bcl mw-list-item"><a href="https://bcl.wikipedia.org/wiki/Module:String" title="Module:String – Central Bikol" lang="bcl" hreflang="bcl" data-title="Module:String" data-language-autonym="Bikol Central" data-language-local-name="Central Bikol" class="interlanguage-link-target"><span>Bikol Central</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:String" title="Модул:String – Bulgarian" lang="bg" hreflang="bg" data-title="Модул:String" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bar mw-list-item"><a href="https://bar.wikipedia.org/wiki/Modul:Str" title="Modul:Str – Bavarian" lang="bar" hreflang="bar" data-title="Modul:Str" data-language-autonym="Boarisch" data-language-local-name="Bavarian" class="interlanguage-link-target"><span>Boarisch</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Modul:String" title="Modul:String – Bosnian" lang="bs" hreflang="bs" data-title="Modul:String" data-language-autonym="Bosanski" data-language-local-name="Bosnian" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-br mw-list-item"><a href="https://br.wikipedia.org/wiki/Modulenn:String" title="Modulenn:String – Breton" lang="br" hreflang="br" data-title="Modulenn:String" data-language-autonym="Brezhoneg" data-language-local-name="Breton" class="interlanguage-link-target"><span>Brezhoneg</span></a></li><li class="interlanguage-link interwiki-bxr mw-list-item"><a href="https://bxr.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Russia Buriat" lang="bxr" hreflang="bxr" data-title="Модуль:String" data-language-autonym="Буряад" data-language-local-name="Russia Buriat" class="interlanguage-link-target"><span>Буряад</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/M%C3%B2dul:String" title="Mòdul:String – Catalan" lang="ca" hreflang="ca" data-title="Mòdul:String" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cv mw-list-item"><a href="https://cv.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Chuvash" lang="cv" hreflang="cv" data-title="Модуль:String" data-language-autonym="Чӑвашла" data-language-local-name="Chuvash" class="interlanguage-link-target"><span>Чӑвашла</span></a></li><li class="interlanguage-link interwiki-ceb mw-list-item"><a href="https://ceb.wikipedia.org/wiki/Module:String" title="Module:String – Cebuano" lang="ceb" hreflang="ceb" data-title="Module:String" data-language-autonym="Cebuano" data-language-local-name="Cebuano" class="interlanguage-link-target"><span>Cebuano</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Modul:String" title="Modul:String – Czech" lang="cs" hreflang="cs" data-title="Modul:String" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-ch mw-list-item"><a href="https://ch.wikipedia.org/wiki/Module:String" title="Module:String – Chamorro" lang="ch" hreflang="ch" data-title="Module:String" data-language-autonym="Chamoru" data-language-local-name="Chamorro" class="interlanguage-link-target"><span>Chamoru</span></a></li><li class="interlanguage-link interwiki-cbk-zam mw-list-item"><a href="https://cbk-zam.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Chavacano" lang="cbk" hreflang="cbk" data-title="Módulo:String" data-language-autonym="Chavacano de Zamboanga" data-language-local-name="Chavacano" class="interlanguage-link-target"><span>Chavacano de Zamboanga</span></a></li><li class="interlanguage-link interwiki-ny mw-list-item"><a href="https://ny.wikipedia.org/wiki/Module:String" title="Module:String – Nyanja" lang="ny" hreflang="ny" data-title="Module:String" data-language-autonym="Chi-Chewa" data-language-local-name="Nyanja" class="interlanguage-link-target"><span>Chi-Chewa</span></a></li><li class="interlanguage-link interwiki-sn mw-list-item"><a href="https://sn.wikipedia.org/wiki/Module:String" title="Module:String – Shona" lang="sn" hreflang="sn" data-title="Module:String" data-language-autonym="ChiShona" data-language-local-name="Shona" class="interlanguage-link-target"><span>ChiShona</span></a></li><li class="interlanguage-link interwiki-tum mw-list-item"><a href="https://tum.wikipedia.org/wiki/Module:String" title="Module:String – Tumbuka" lang="tum" hreflang="tum" data-title="Module:String" data-language-autonym="ChiTumbuka" data-language-local-name="Tumbuka" class="interlanguage-link-target"><span>ChiTumbuka</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Corsican" lang="co" hreflang="co" data-title="Modulo:String" data-language-autonym="Corsu" data-language-local-name="Corsican" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Modiwl:String" title="Modiwl:String – Welsh" lang="cy" hreflang="cy" data-title="Modiwl:String" data-language-autonym="Cymraeg" data-language-local-name="Welsh" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-dag mw-list-item"><a href="https://dag.wikipedia.org/wiki/Module:String" title="Module:String – Dagbani" lang="dag" hreflang="dag" data-title="Module:String" data-language-autonym="Dagbanli" data-language-local-name="Dagbani" class="interlanguage-link-target"><span>Dagbanli</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Modul:String" title="Modul:String – Danish" lang="da" hreflang="da" data-title="Modul:String" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-ary mw-list-item"><a href="https://ary.wikipedia.org/wiki/%D9%85%D9%88%D8%AF%D9%88%D9%84:String" title="مودول:String – Moroccan Arabic" lang="ary" hreflang="ary" data-title="مودول:String" data-language-autonym="الدارجة" data-language-local-name="Moroccan Arabic" class="interlanguage-link-target"><span>الدارجة</span></a></li><li class="interlanguage-link interwiki-se mw-list-item"><a href="https://se.wikipedia.org/wiki/Modula:String" title="Modula:String – Northern Sami" lang="se" hreflang="se" data-title="Modula:String" data-language-autonym="Davvisámegiella" data-language-local-name="Northern Sami" class="interlanguage-link-target"><span>Davvisámegiella</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Modul:Str" title="Modul:Str – German" lang="de" hreflang="de" data-title="Modul:Str" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-dv mw-list-item"><a href="https://dv.wikipedia.org/wiki/%DE%89%DE%AE%DE%91%DE%A8%DE%87%DE%AA%DE%8D%DE%B0:String" title="މޮޑިއުލް:String – Divehi" lang="dv" hreflang="dv" data-title="މޮޑިއުލް:String" data-language-autonym="ދިވެހިބަސް" data-language-local-name="Divehi" class="interlanguage-link-target"><span>ދިވެހިބަސް</span></a></li><li class="interlanguage-link interwiki-dsb mw-list-item"><a href="https://dsb.wikipedia.org/wiki/Modul:String" title="Modul:String – Lower Sorbian" lang="dsb" hreflang="dsb" data-title="Modul:String" data-language-autonym="Dolnoserbski" data-language-local-name="Lower Sorbian" class="interlanguage-link-target"><span>Dolnoserbski</span></a></li><li class="interlanguage-link interwiki-dty mw-list-item"><a href="https://dty.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%81%E0%A4%B2:String" title="मोड्युल:String – Doteli" lang="dty" hreflang="dty" data-title="मोड्युल:String" data-language-autonym="डोटेली" data-language-local-name="Doteli" class="interlanguage-link-target"><span>डोटेली</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Moodul:String" title="Moodul:String – Estonian" lang="et" hreflang="et" data-title="Moodul:String" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Module:String" title="Module:String – Greek" lang="el" hreflang="el" data-title="Module:String" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-eml mw-list-item"><a href="https://eml.wikipedia.org/wiki/M%C3%B2dul:String" title="Mòdul:String – Emiliano-Romagnolo" lang="egl" hreflang="egl" data-title="Mòdul:String" data-language-autonym="Emiliàn e rumagnòl" data-language-local-name="Emiliano-Romagnolo" class="interlanguage-link-target"><span>Emiliàn e rumagnòl</span></a></li><li class="interlanguage-link interwiki-myv mw-list-item"><a href="https://myv.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Erzya" lang="myv" hreflang="myv" data-title="Модуль:String" data-language-autonym="Эрзянь" data-language-local-name="Erzya" class="interlanguage-link-target"><span>Эрзянь</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Spanish" lang="es" hreflang="es" data-title="Módulo:String" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Esperanto" lang="eo" hreflang="eo" data-title="Modulo:String" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Modulu:String" title="Modulu:String – Basque" lang="eu" hreflang="eu" data-title="Modulu:String" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-ee mw-list-item"><a href="https://ee.wikipedia.org/wiki/Module:String" title="Module:String – Ewe" lang="ee" hreflang="ee" data-title="Module:String" data-language-autonym="Eʋegbe" data-language-local-name="Ewe" class="interlanguage-link-target"><span>Eʋegbe</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:String" title="پودمان:String – Persian" lang="fa" hreflang="fa" data-title="پودمان:String" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-hif mw-list-item"><a href="https://hif.wikipedia.org/wiki/Module:String" title="Module:String – Fiji Hindi" lang="hif" hreflang="hif" data-title="Module:String" data-language-autonym="Fiji Hindi" data-language-local-name="Fiji Hindi" class="interlanguage-link-target"><span>Fiji Hindi</span></a></li><li class="interlanguage-link interwiki-fo mw-list-item"><a href="https://fo.wikipedia.org/wiki/Module:String" title="Module:String – Faroese" lang="fo" hreflang="fo" data-title="Module:String" data-language-autonym="Føroyskt" data-language-local-name="Faroese" class="interlanguage-link-target"><span>Føroyskt</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Module:String" title="Module:String – French" lang="fr" hreflang="fr" data-title="Module:String" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-fy mw-list-item"><a href="https://fy.wikipedia.org/wiki/Module:String" title="Module:String – Western Frisian" lang="fy" hreflang="fy" data-title="Module:String" data-language-autonym="Frysk" data-language-local-name="Western Frisian" class="interlanguage-link-target"><span>Frysk</span></a></li><li class="interlanguage-link interwiki-fur mw-list-item"><a href="https://fur.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Friulian" lang="fur" hreflang="fur" data-title="Modulo:String" data-language-autonym="Furlan" data-language-local-name="Friulian" class="interlanguage-link-target"><span>Furlan</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/Module:String" title="Module:String – Irish" lang="ga" hreflang="ga" data-title="Module:String" data-language-autonym="Gaeilge" data-language-local-name="Irish" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gd mw-list-item"><a href="https://gd.wikipedia.org/wiki/M%C3%B2ideal:String" title="Mòideal:String – Scottish Gaelic" lang="gd" hreflang="gd" data-title="Mòideal:String" data-language-autonym="Gàidhlig" data-language-local-name="Scottish Gaelic" class="interlanguage-link-target"><span>Gàidhlig</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Galician" lang="gl" hreflang="gl" data-title="Módulo:String" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-inh mw-list-item"><a href="https://inh.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Ingush" lang="inh" hreflang="inh" data-title="Модуль:String" data-language-autonym="ГӀалгӀай" data-language-local-name="Ingush" class="interlanguage-link-target"><span>ГӀалгӀай</span></a></li><li class="interlanguage-link interwiki-gan mw-list-item"><a href="https://gan.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Gan" lang="gan" hreflang="gan" data-title="模組:String" data-language-autonym="贛語" data-language-local-name="Gan" class="interlanguage-link-target"><span>贛語</span></a></li><li class="interlanguage-link interwiki-glk mw-list-item"><a href="https://glk.wikipedia.org/wiki/%D9%85%D8%A7%D8%AC%DB%8A%D9%84:String" title="ماجۊل:String – Gilaki" lang="glk" hreflang="glk" data-title="ماجۊل:String" data-language-autonym="گیلکی" data-language-local-name="Gilaki" class="interlanguage-link-target"><span>گیلکی</span></a></li><li class="interlanguage-link interwiki-gu mw-list-item"><a href="https://gu.wikipedia.org/wiki/%E0%AA%B5%E0%AA%BF%E0%AA%AD%E0%AA%BE%E0%AA%97:String" title="વિભાગ:String – Gujarati" lang="gu" hreflang="gu" data-title="વિભાગ:String" data-language-autonym="ગુજરાતી" data-language-local-name="Gujarati" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-gom mw-list-item"><a href="https://gom.wikipedia.org/wiki/%E0%A4%8F%E0%A4%95%E0%A4%95:String" title="एकक:String – Goan Konkani" lang="gom" hreflang="gom" data-title="एकक:String" data-language-autonym="गोंयची कोंकणी / Gõychi Konknni" data-language-local-name="Goan Konkani" class="interlanguage-link-target"><span>गोंयची कोंकणी / Gõychi Konknni</span></a></li><li class="interlanguage-link interwiki-hak mw-list-item"><a href="https://hak.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Hakka Chinese" lang="hak" hreflang="hak" data-title="模組:String" data-language-autonym="客家語 / Hak-kâ-ngî" data-language-local-name="Hakka Chinese" class="interlanguage-link-target"><span>客家語 / Hak-kâ-ngî</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%93%88:String" title="모듈:String – Korean" lang="ko" hreflang="ko" data-title="모듈:String" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/Module:String" title="Module:String – Hausa" lang="ha" hreflang="ha" data-title="Module:String" data-language-autonym="Hausa" data-language-local-name="Hausa" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-haw mw-list-item"><a href="https://haw.wikipedia.org/wiki/Module:String" title="Module:String – Hawaiian" lang="haw" hreflang="haw" data-title="Module:String" data-language-autonym="Hawaiʻi" data-language-local-name="Hawaiian" class="interlanguage-link-target"><span>Hawaiʻi</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%84%D5%B8%D5%A4%D5%B8%D6%82%D5%AC:String" title="Մոդուլ:String – Armenian" lang="hy" hreflang="hy" data-title="Մոդուլ:String" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%89%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%82%E0%A4%B2:String" title="मॉड्यूल:String – Hindi" lang="hi" hreflang="hi" data-title="मॉड्यूल:String" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hsb mw-list-item"><a href="https://hsb.wikipedia.org/wiki/Modul:String" title="Modul:String – Upper Sorbian" lang="hsb" hreflang="hsb" data-title="Modul:String" data-language-autonym="Hornjoserbsce" data-language-local-name="Upper Sorbian" class="interlanguage-link-target"><span>Hornjoserbsce</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Modul:String" title="Modul:String – Croatian" lang="hr" hreflang="hr" data-title="Modul:String" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-gor mw-list-item"><a href="https://gor.wikipedia.org/wiki/Modul:String" title="Modul:String – Gorontalo" lang="gor" hreflang="gor" data-title="Modul:String" data-language-autonym="Bahasa Hulontalo" data-language-local-name="Gorontalo" class="interlanguage-link-target"><span>Bahasa Hulontalo</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Ido" lang="io" hreflang="io" data-title="Modulo:String" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-ig mw-list-item"><a href="https://ig.wikipedia.org/wiki/Module:String" title="Module:String – Igbo" lang="ig" hreflang="ig" data-title="Module:String" data-language-autonym="Igbo" data-language-local-name="Igbo" class="interlanguage-link-target"><span>Igbo</span></a></li><li class="interlanguage-link interwiki-ilo mw-list-item"><a href="https://ilo.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Iloko" lang="ilo" hreflang="ilo" data-title="Modulo:String" data-language-autonym="Ilokano" data-language-local-name="Iloko" class="interlanguage-link-target"><span>Ilokano</span></a></li><li class="interlanguage-link interwiki-bpy mw-list-item"><a href="https://bpy.wikipedia.org/wiki/%E0%A6%AE%E0%A6%A1%E0%A6%BF%E0%A6%89%E0%A6%B2:String" title="মডিউল:String – Bishnupriya" lang="bpy" hreflang="bpy" data-title="মডিউল:String" data-language-autonym="বিষ্ণুপ্রিয়া মণিপুরী" data-language-local-name="Bishnupriya" class="interlanguage-link-target"><span>বিষ্ণুপ্রিয়া মণিপুরী</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Modul:String" title="Modul:String – Indonesian" lang="id" hreflang="id" data-title="Modul:String" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/Module:String" title="Module:String – Interlingua" lang="ia" hreflang="ia" data-title="Module:String" data-language-autonym="Interlingua" data-language-local-name="Interlingua" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-os mw-list-item"><a href="https://os.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Ossetic" lang="os" hreflang="os" data-title="Модуль:String" data-language-autonym="Ирон" data-language-local-name="Ossetic" class="interlanguage-link-target"><span>Ирон</span></a></li><li class="interlanguage-link interwiki-xh mw-list-item"><a href="https://xh.wikipedia.org/wiki/Module:String" title="Module:String – Xhosa" lang="xh" hreflang="xh" data-title="Module:String" data-language-autonym="IsiXhosa" data-language-local-name="Xhosa" class="interlanguage-link-target"><span>IsiXhosa</span></a></li><li class="interlanguage-link interwiki-zu mw-list-item"><a href="https://zu.wikipedia.org/wiki/Module:String" title="Module:String – Zulu" lang="zu" hreflang="zu" data-title="Module:String" data-language-autonym="IsiZulu" data-language-local-name="Zulu" class="interlanguage-link-target"><span>IsiZulu</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Module:Strengur" title="Module:Strengur – Icelandic" lang="is" hreflang="is" data-title="Module:Strengur" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Italian" lang="it" hreflang="it" data-title="Modulo:String" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%99%D7%97%D7%99%D7%93%D7%94:String" title="יחידה:String – Hebrew" lang="he" hreflang="he" data-title="יחידה:String" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-jv mw-list-item"><a href="https://jv.wikipedia.org/wiki/Modhul:String" title="Modhul:String – Javanese" lang="jv" hreflang="jv" data-title="Modhul:String" data-language-autonym="Jawa" data-language-local-name="Javanese" class="interlanguage-link-target"><span>Jawa</span></a></li><li class="interlanguage-link interwiki-kn mw-list-item"><a href="https://kn.wikipedia.org/wiki/%E0%B2%AE%E0%B2%BE%E0%B2%A1%E0%B3%8D%E0%B2%AF%E0%B3%82%E0%B2%B2%E0%B3%8D:String" title="ಮಾಡ್ಯೂಲ್:String – Kannada" lang="kn" hreflang="kn" data-title="ಮಾಡ್ಯೂಲ್:String" data-language-autonym="ಕನ್ನಡ" data-language-local-name="Kannada" class="interlanguage-link-target"><span>ಕನ್ನಡ</span></a></li><li class="interlanguage-link interwiki-pam mw-list-item"><a href="https://pam.wikipedia.org/wiki/Module:String" title="Module:String – Pampanga" lang="pam" hreflang="pam" data-title="Module:String" data-language-autonym="Kapampangan" data-language-local-name="Pampanga" class="interlanguage-link-target"><span>Kapampangan</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%9B%E1%83%9D%E1%83%93%E1%83%A3%E1%83%9A%E1%83%98:String" title="მოდული:String – Georgian" lang="ka" hreflang="ka" data-title="მოდული:String" data-language-autonym="ქართული" data-language-local-name="Georgian" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-ks mw-list-item"><a href="https://ks.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%97%D9%84:String" title="ماڈیوٗل:String – Kashmiri" lang="ks" hreflang="ks" data-title="ماڈیوٗل:String" data-language-autonym="कॉशुर / کٲشُر" data-language-local-name="Kashmiri" class="interlanguage-link-target"><span>कॉशुर / کٲشُر</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/Module:String" title="Module:String – Kazakh" lang="kk" hreflang="kk" data-title="Module:String" data-language-autonym="Қазақша" data-language-local-name="Kazakh" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-kw mw-list-item"><a href="https://kw.wikipedia.org/wiki/Module:String" title="Module:String – Cornish" lang="kw" hreflang="kw" data-title="Module:String" data-language-autonym="Kernowek" data-language-local-name="Cornish" class="interlanguage-link-target"><span>Kernowek</span></a></li><li class="interlanguage-link interwiki-rw mw-list-item"><a href="https://rw.wikipedia.org/wiki/Module:String" title="Module:String – Kinyarwanda" lang="rw" hreflang="rw" data-title="Module:String" data-language-autonym="Ikinyarwanda" data-language-local-name="Kinyarwanda" class="interlanguage-link-target"><span>Ikinyarwanda</span></a></li><li class="interlanguage-link interwiki-rn mw-list-item"><a href="https://rn.wikipedia.org/wiki/Module:String" title="Module:String – Rundi" lang="rn" hreflang="rn" data-title="Module:String" data-language-autonym="Ikirundi" data-language-local-name="Rundi" class="interlanguage-link-target"><span>Ikirundi</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Module:String" title="Module:String – Swahili" lang="sw" hreflang="sw" data-title="Module:String" data-language-autonym="Kiswahili" data-language-local-name="Swahili" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-kv mw-list-item"><a href="https://kv.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Komi" lang="kv" hreflang="kv" data-title="Модуль:String" data-language-autonym="Коми" data-language-local-name="Komi" class="interlanguage-link-target"><span>Коми</span></a></li><li class="interlanguage-link interwiki-kg mw-list-item"><a href="https://kg.wikipedia.org/wiki/Module:String" title="Module:String – Kongo" lang="kg" hreflang="kg" data-title="Module:String" data-language-autonym="Kongo" data-language-local-name="Kongo" class="interlanguage-link-target"><span>Kongo</span></a></li><li class="interlanguage-link interwiki-avk mw-list-item"><a href="https://avk.wikipedia.org/wiki/Siba:String" title="Siba:String – Kotava" lang="avk" hreflang="avk" data-title="Siba:String" data-language-autonym="Kotava" data-language-local-name="Kotava" class="interlanguage-link-target"><span>Kotava</span></a></li><li class="interlanguage-link interwiki-ht mw-list-item"><a href="https://ht.wikipedia.org/wiki/Module:String" title="Module:String – Haitian Creole" lang="ht" hreflang="ht" data-title="Module:String" data-language-autonym="Kreyòl ayisyen" data-language-local-name="Haitian Creole" class="interlanguage-link-target"><span>Kreyòl ayisyen</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Modul:String" title="Modul:String – Kurdish" lang="ku" hreflang="ku" data-title="Modul:String" data-language-autonym="Kurdî" data-language-local-name="Kurdish" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Kyrgyz" lang="ky" hreflang="ky" data-title="Модуль:String" data-language-autonym="Кыргызча" data-language-local-name="Kyrgyz" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-mrj mw-list-item"><a href="https://mrj.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Western Mari" lang="mrj" hreflang="mrj" data-title="Модуль:String" data-language-autonym="Кырык мары" data-language-local-name="Western Mari" class="interlanguage-link-target"><span>Кырык мары</span></a></li><li class="interlanguage-link interwiki-lld mw-list-item"><a href="https://lld.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Ladin" lang="lld" hreflang="lld" data-title="Modulo:String" data-language-autonym="Ladin" data-language-local-name="Ladin" class="interlanguage-link-target"><span>Ladin</span></a></li><li class="interlanguage-link interwiki-lad mw-list-item"><a href="https://lad.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Ladino" lang="lad" hreflang="lad" data-title="Módulo:String" data-language-autonym="Ladino" data-language-local-name="Ladino" class="interlanguage-link-target"><span>Ladino</span></a></li><li class="interlanguage-link interwiki-lbe mw-list-item"><a href="https://lbe.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Lak" lang="lbe" hreflang="lbe" data-title="Модуль:String" data-language-autonym="Лакку" data-language-local-name="Lak" class="interlanguage-link-target"><span>Лакку</span></a></li><li class="interlanguage-link interwiki-lo mw-list-item"><a href="https://lo.wikipedia.org/wiki/Module:String" title="Module:String – Lao" lang="lo" hreflang="lo" data-title="Module:String" data-language-autonym="ລາວ" data-language-local-name="Lao" class="interlanguage-link-target"><span>ລາວ</span></a></li><li class="interlanguage-link interwiki-ltg mw-list-item"><a href="https://ltg.wikipedia.org/wiki/Modulis:String" title="Modulis:String – Latgalian" lang="ltg" hreflang="ltg" data-title="Modulis:String" data-language-autonym="Latgaļu" data-language-local-name="Latgalian" class="interlanguage-link-target"><span>Latgaļu</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Modulus:String" title="Modulus:String – Latin" lang="la" hreflang="la" data-title="Modulus:String" data-language-autonym="Latina" data-language-local-name="Latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Modulis:String" title="Modulis:String – Latvian" lang="lv" hreflang="lv" data-title="Modulis:String" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-lb mw-list-item"><a href="https://lb.wikipedia.org/wiki/Modul:String" title="Modul:String – Luxembourgish" lang="lb" hreflang="lb" data-title="Modul:String" data-language-autonym="Lëtzebuergesch" data-language-local-name="Luxembourgish" class="interlanguage-link-target"><span>Lëtzebuergesch</span></a></li><li class="interlanguage-link interwiki-lez mw-list-item"><a href="https://lez.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Lezghian" lang="lez" hreflang="lez" data-title="Модуль:String" data-language-autonym="Лезги" data-language-local-name="Lezghian" class="interlanguage-link-target"><span>Лезги</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Module:String" title="Module:String – Lithuanian" lang="lt" hreflang="lt" data-title="Module:String" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-nia mw-list-item"><a href="https://nia.wikipedia.org/wiki/Modul:String" title="Modul:String – Nias" lang="nia" hreflang="nia" data-title="Modul:String" data-language-autonym="Li Niha" data-language-local-name="Nias" class="interlanguage-link-target"><span>Li Niha</span></a></li><li class="interlanguage-link interwiki-lij mw-list-item"><a href="https://lij.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Ligurian" lang="lij" hreflang="lij" data-title="Modulo:String" data-language-autonym="Ligure" data-language-local-name="Ligurian" class="interlanguage-link-target"><span>Ligure</span></a></li><li class="interlanguage-link interwiki-ln mw-list-item"><a href="https://ln.wikipedia.org/wiki/Module:String" title="Module:String – Lingala" lang="ln" hreflang="ln" data-title="Module:String" data-language-autonym="Lingála" data-language-local-name="Lingala" class="interlanguage-link-target"><span>Lingála</span></a></li><li class="interlanguage-link interwiki-lfn mw-list-item"><a href="https://lfn.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Lingua Franca Nova" lang="lfn" hreflang="lfn" data-title="Modulo:String" data-language-autonym="Lingua Franca Nova" data-language-local-name="Lingua Franca Nova" class="interlanguage-link-target"><span>Lingua Franca Nova</span></a></li><li class="interlanguage-link interwiki-olo mw-list-item"><a href="https://olo.wikipedia.org/wiki/Moduuli:String" title="Moduuli:String – Livvi-Karelian" lang="olo" hreflang="olo" data-title="Moduuli:String" data-language-autonym="Livvinkarjala" data-language-local-name="Livvi-Karelian" class="interlanguage-link-target"><span>Livvinkarjala</span></a></li><li class="interlanguage-link interwiki-jbo mw-list-item"><a href="https://jbo.wikipedia.org/wiki/Module:String" title="Module:String – Lojban" lang="jbo" hreflang="jbo" data-title="Module:String" data-language-autonym="La .lojban." data-language-local-name="Lojban" class="interlanguage-link-target"><span>La .lojban.</span></a></li><li class="interlanguage-link interwiki-lg mw-list-item"><a href="https://lg.wikipedia.org/wiki/Module:String" title="Module:String – Ganda" lang="lg" hreflang="lg" data-title="Module:String" data-language-autonym="Luganda" data-language-local-name="Ganda" class="interlanguage-link-target"><span>Luganda</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/M%C3%B2dul:String" title="Mòdul:String – Lombard" lang="lmo" hreflang="lmo" data-title="Mòdul:String" data-language-autonym="Lombard" data-language-local-name="Lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Modul:String" title="Modul:String – Hungarian" lang="hu" hreflang="hu" data-title="Modul:String" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-mad mw-list-item"><a href="https://mad.wikipedia.org/wiki/Modul:String" title="Modul:String – Madurese" lang="mad" hreflang="mad" data-title="Modul:String" data-language-autonym="Madhurâ" data-language-local-name="Madurese" class="interlanguage-link-target"><span>Madhurâ</span></a></li><li class="interlanguage-link interwiki-mai mw-list-item"><a href="https://mai.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%81%E0%A4%B2:String" title="मोड्युल:String – Maithili" lang="mai" hreflang="mai" data-title="मोड्युल:String" data-language-autonym="मैथिली" data-language-local-name="Maithili" class="interlanguage-link-target"><span>मैथिली</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:String" title="Модул:String – Macedonian" lang="mk" hreflang="mk" data-title="Модул:String" data-language-autonym="Македонски" data-language-local-name="Macedonian" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-mg mw-list-item"><a href="https://mg.wikipedia.org/wiki/Module:String" title="Module:String – Malagasy" lang="mg" hreflang="mg" data-title="Module:String" data-language-autonym="Malagasy" data-language-local-name="Malagasy" class="interlanguage-link-target"><span>Malagasy</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:String" title="ഘടകം:String – Malayalam" lang="ml" hreflang="ml" data-title="ഘടകം:String" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mt mw-list-item"><a href="https://mt.wikipedia.org/wiki/Module:String" title="Module:String – Maltese" lang="mt" hreflang="mt" data-title="Module:String" data-language-autonym="Malti" data-language-local-name="Maltese" class="interlanguage-link-target"><span>Malti</span></a></li><li class="interlanguage-link interwiki-mi mw-list-item"><a href="https://mi.wikipedia.org/wiki/Module:String" title="Module:String – Māori" lang="mi" hreflang="mi" data-title="Module:String" data-language-autonym="Māori" data-language-local-name="Māori" class="interlanguage-link-target"><span>Māori</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BF%E0%A4%AD%E0%A4%BE%E0%A4%97:String" title="विभाग:String – Marathi" lang="mr" hreflang="mr" data-title="विभाग:String" data-language-autonym="मराठी" data-language-local-name="Marathi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-xmf mw-list-item"><a href="https://xmf.wikipedia.org/wiki/%E1%83%9B%E1%83%9D%E1%83%93%E1%83%A3%E1%83%9A%E1%83%98:String" title="მოდული:String – Mingrelian" lang="xmf" hreflang="xmf" data-title="მოდული:String" data-language-autonym="მარგალური" data-language-local-name="Mingrelian" class="interlanguage-link-target"><span>მარგალური</span></a></li><li class="interlanguage-link interwiki-arz mw-list-item"><a href="https://arz.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:String" title="وحدة:String – Egyptian Arabic" lang="arz" hreflang="arz" data-title="وحدة:String" data-language-autonym="مصرى" data-language-local-name="Egyptian Arabic" class="interlanguage-link-target"><span>مصرى</span></a></li><li class="interlanguage-link interwiki-mnw mw-list-item"><a href="https://mnw.wikipedia.org/wiki/%E1%80%99%E1%80%9D%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0:String" title="မဝ်ဂျူ:String – Mon" lang="mnw" hreflang="mnw" data-title="မဝ်ဂျူ:String" data-language-autonym="ဘာသာမန်" data-language-local-name="Mon" class="interlanguage-link-target"><span>ဘာသာမန်</span></a></li><li class="interlanguage-link interwiki-mzn mw-list-item"><a href="https://mzn.wikipedia.org/wiki/%D9%85%D8%A7%DA%98%D9%88%D9%84:String" title="ماژول:String – Mazanderani" lang="mzn" hreflang="mzn" data-title="ماژول:String" data-language-autonym="مازِرونی" data-language-local-name="Mazanderani" class="interlanguage-link-target"><span>مازِرونی</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Modul:String" title="Modul:String – Malay" lang="ms" hreflang="ms" data-title="Modul:String" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mni mw-list-item"><a href="https://mni.wikipedia.org/wiki/Module:String" title="Module:String – Manipuri" lang="mni" hreflang="mni" data-title="Module:String" data-language-autonym="ꯃꯤꯇꯩ ꯂꯣꯟ" data-language-local-name="Manipuri" class="interlanguage-link-target"><span>ꯃꯤꯇꯩ ꯂꯣꯟ</span></a></li><li class="interlanguage-link interwiki-fat mw-list-item"><a href="https://fat.wikipedia.org/wiki/Module:String" title="Module:String – Fanti" lang="fat" hreflang="fat" data-title="Module:String" data-language-autonym="Mfantse" data-language-local-name="Fanti" class="interlanguage-link-target"><span>Mfantse</span></a></li><li class="interlanguage-link interwiki-min mw-list-item"><a href="https://min.wikipedia.org/wiki/Modul:String" title="Modul:String – Minangkabau" lang="min" hreflang="min" data-title="Modul:String" data-language-autonym="Minangkabau" data-language-local-name="Minangkabau" class="interlanguage-link-target"><span>Minangkabau</span></a></li><li class="interlanguage-link interwiki-cdo mw-list-item"><a href="https://cdo.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Mindong" lang="cdo" hreflang="cdo" data-title="模組:String" data-language-autonym="閩東語 / Mìng-dĕ̤ng-ngṳ̄" data-language-local-name="Mindong" class="interlanguage-link-target"><span>閩東語 / Mìng-dĕ̤ng-ngṳ̄</span></a></li><li class="interlanguage-link interwiki-mwl mw-list-item"><a href="https://mwl.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Mirandese" lang="mwl" hreflang="mwl" data-title="Módulo:String" data-language-autonym="Mirandés" data-language-local-name="Mirandese" class="interlanguage-link-target"><span>Mirandés</span></a></li><li class="interlanguage-link interwiki-mdf mw-list-item"><a href="https://mdf.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Moksha" lang="mdf" hreflang="mdf" data-title="Модуль:String" data-language-autonym="Мокшень" data-language-local-name="Moksha" class="interlanguage-link-target"><span>Мокшень</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Module:String" title="Module:String – Mongolian" lang="mn" hreflang="mn" data-title="Module:String" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:String" title="မော်ဂျူး:String – Burmese" lang="my" hreflang="my" data-title="မော်ဂျူး:String" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="Burmese" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-nah mw-list-item"><a href="https://nah.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Nahuatl" lang="nah" hreflang="nah" data-title="Módulo:String" data-language-autonym="Nāhuatl" data-language-local-name="Nahuatl" class="interlanguage-link-target"><span>Nāhuatl</span></a></li><li class="interlanguage-link interwiki-fj mw-list-item"><a href="https://fj.wikipedia.org/wiki/Module:String" title="Module:String – Fijian" lang="fj" hreflang="fj" data-title="Module:String" data-language-autonym="Na Vosa Vakaviti" data-language-local-name="Fijian" class="interlanguage-link-target"><span>Na Vosa Vakaviti</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Module:String" title="Module:String – Dutch" lang="nl" hreflang="nl" data-title="Module:String" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nds-nl mw-list-item"><a href="https://nds-nl.wikipedia.org/wiki/Module:String" title="Module:String – Low Saxon" lang="nds-NL" hreflang="nds-NL" data-title="Module:String" data-language-autonym="Nedersaksies" data-language-local-name="Low Saxon" class="interlanguage-link-target"><span>Nedersaksies</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%81%E0%A4%B2:String" title="मोड्युल:String – Nepali" lang="ne" hreflang="ne" data-title="मोड्युल:String" data-language-autonym="नेपाली" data-language-local-name="Nepali" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:String" title="モジュール:String – Japanese" lang="ja" hreflang="ja" data-title="モジュール:String" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-nap mw-list-item"><a href="https://nap.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Neapolitan" lang="nap" hreflang="nap" data-title="Modulo:String" data-language-autonym="Napulitano" data-language-local-name="Neapolitan" class="interlanguage-link-target"><span>Napulitano</span></a></li><li class="interlanguage-link interwiki-ce mw-list-item"><a href="https://ce.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Chechen" lang="ce" hreflang="ce" data-title="Модуль:String" data-language-autonym="Нохчийн" data-language-local-name="Chechen" class="interlanguage-link-target"><span>Нохчийн</span></a></li><li class="interlanguage-link interwiki-frr mw-list-item"><a href="https://frr.wikipedia.org/wiki/Modul:Str" title="Modul:Str – Northern Frisian" lang="frr" hreflang="frr" data-title="Modul:Str" data-language-autonym="Nordfriisk" data-language-local-name="Northern Frisian" class="interlanguage-link-target"><span>Nordfriisk</span></a></li><li class="interlanguage-link interwiki-pih mw-list-item"><a href="https://pih.wikipedia.org/wiki/Module:String" title="Module:String – Norfuk / Pitkern" lang="pih" hreflang="pih" data-title="Module:String" data-language-autonym="Norfuk / Pitkern" data-language-local-name="Norfuk / Pitkern" class="interlanguage-link-target"><span>Norfuk / Pitkern</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Modul:String" title="Modul:String – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Modul:String" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Modul:String" title="Modul:String – Norwegian Nynorsk" lang="nn" hreflang="nn" data-title="Modul:String" data-language-autonym="Norsk nynorsk" data-language-local-name="Norwegian Nynorsk" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-nov mw-list-item"><a href="https://nov.wikipedia.org/wiki/Module:String" title="Module:String – Novial" lang="nov" hreflang="nov" data-title="Module:String" data-language-autonym="Novial" data-language-local-name="Novial" class="interlanguage-link-target"><span>Novial</span></a></li><li class="interlanguage-link interwiki-oc mw-list-item"><a href="https://oc.wikipedia.org/wiki/M%C3%B2dul:String" title="Mòdul:String – Occitan" lang="oc" hreflang="oc" data-title="Mòdul:String" data-language-autonym="Occitan" data-language-local-name="Occitan" class="interlanguage-link-target"><span>Occitan</span></a></li><li class="interlanguage-link interwiki-mhr mw-list-item"><a href="https://mhr.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Eastern Mari" lang="mhr" hreflang="mhr" data-title="Модуль:String" data-language-autonym="Олык марий" data-language-local-name="Eastern Mari" class="interlanguage-link-target"><span>Олык марий</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%AE%E0%AC%A1%E0%AD%8D%E0%AD%9F%E0%AD%81%E0%AC%B2:String" title="ମଡ୍ୟୁଲ:String – Odia" lang="or" hreflang="or" data-title="ମଡ୍ୟୁଲ:String" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="Odia" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Modul:String" title="Modul:String – Uzbek" lang="uz" hreflang="uz" data-title="Modul:String" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%AE%E0%A9%8C%E0%A8%A1%E0%A8%BF%E0%A8%8A%E0%A8%B2:String" title="ਮੌਡਿਊਲ:String – Punjabi" lang="pa" hreflang="pa" data-title="ਮੌਡਿਊਲ:String" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="Punjabi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pi mw-list-item"><a href="https://pi.wikipedia.org/wiki/Module:String" title="Module:String – Pali" lang="pi" hreflang="pi" data-title="Module:String" data-language-autonym="पालि" data-language-local-name="Pali" class="interlanguage-link-target"><span>पालि</span></a></li><li class="interlanguage-link interwiki-pag mw-list-item"><a href="https://pag.wikipedia.org/wiki/Module:String" title="Module:String – Pangasinan" lang="pag" hreflang="pag" data-title="Module:String" data-language-autonym="Pangasinan" data-language-local-name="Pangasinan" class="interlanguage-link-target"><span>Pangasinan</span></a></li><li class="interlanguage-link interwiki-pnb mw-list-item"><a href="https://pnb.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:String" title="ماڈیول:String – Western Punjabi" lang="pnb" hreflang="pnb" data-title="ماڈیول:String" data-language-autonym="پنجابی" data-language-local-name="Western Punjabi" class="interlanguage-link-target"><span>پنجابی</span></a></li><li class="interlanguage-link interwiki-blk mw-list-item"><a href="https://blk.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:String" title="မော်ဂျူး:String – Pa'O" lang="blk" hreflang="blk" data-title="မော်ဂျူး:String" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa'O" class="interlanguage-link-target"><span>ပအိုဝ်ႏဘာႏသာႏ</span></a></li><li class="interlanguage-link interwiki-pap mw-list-item"><a href="https://pap.wikipedia.org/wiki/Module:String" title="Module:String – Papiamento" lang="pap" hreflang="pap" data-title="Module:String" data-language-autonym="Papiamentu" data-language-local-name="Papiamento" class="interlanguage-link-target"><span>Papiamentu</span></a></li><li class="interlanguage-link interwiki-ps mw-list-item"><a href="https://ps.wikipedia.org/wiki/Module:String" title="Module:String – Pashto" lang="ps" hreflang="ps" data-title="Module:String" data-language-autonym="پښتو" data-language-local-name="Pashto" class="interlanguage-link-target"><span>پښتو</span></a></li><li class="interlanguage-link interwiki-koi mw-list-item"><a href="https://koi.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Komi-Permyak" lang="koi" hreflang="koi" data-title="Модуль:String" data-language-autonym="Перем коми" data-language-local-name="Komi-Permyak" class="interlanguage-link-target"><span>Перем коми</span></a></li><li class="interlanguage-link interwiki-km mw-list-item"><a href="https://km.wikipedia.org/wiki/Module:String" title="Module:String – Khmer" lang="km" hreflang="km" data-title="Module:String" data-language-autonym="ភាសាខ្មែរ" data-language-local-name="Khmer" class="interlanguage-link-target"><span>ភាសាខ្មែរ</span></a></li><li class="interlanguage-link interwiki-pcd mw-list-item"><a href="https://pcd.wikipedia.org/wiki/Module:String" title="Module:String – Picard" lang="pcd" hreflang="pcd" data-title="Module:String" data-language-autonym="Picard" data-language-local-name="Picard" class="interlanguage-link-target"><span>Picard</span></a></li><li class="interlanguage-link interwiki-pms mw-list-item"><a href="https://pms.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Piedmontese" lang="pms" hreflang="pms" data-title="Modulo:String" data-language-autonym="Piemontèis" data-language-local-name="Piedmontese" class="interlanguage-link-target"><span>Piemontèis</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Modu%C5%82:String" title="Moduł:String – Polish" lang="pl" hreflang="pl" data-title="Moduł:String" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Portuguese" lang="pt" hreflang="pt" data-title="Módulo:String" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-crh mw-list-item"><a href="https://crh.wikipedia.org/wiki/Modul:String" title="Modul:String – Crimean Tatar" lang="crh" hreflang="crh" data-title="Modul:String" data-language-autonym="Qırımtatarca" data-language-local-name="Crimean Tatar" class="interlanguage-link-target"><span>Qırımtatarca</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Modul:String" title="Modul:String – Romanian" lang="ro" hreflang="ro" data-title="Modul:String" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-rm mw-list-item"><a href="https://rm.wikipedia.org/wiki/Modul:Str" title="Modul:Str – Romansh" lang="rm" hreflang="rm" data-title="Modul:Str" data-language-autonym="Rumantsch" data-language-local-name="Romansh" class="interlanguage-link-target"><span>Rumantsch</span></a></li><li class="interlanguage-link interwiki-qu mw-list-item"><a href="https://qu.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Quechua" lang="qu" hreflang="qu" data-title="Módulo:String" data-language-autonym="Runa Simi" data-language-local-name="Quechua" class="interlanguage-link-target"><span>Runa Simi</span></a></li><li class="interlanguage-link interwiki-rue mw-list-item"><a href="https://rue.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Rusyn" lang="rue" hreflang="rue" data-title="Модуль:String" data-language-autonym="Русиньскый" data-language-local-name="Rusyn" class="interlanguage-link-target"><span>Русиньскый</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Russian" lang="ru" hreflang="ru" data-title="Модуль:String" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sah mw-list-item"><a href="https://sah.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Yakut" lang="sah" hreflang="sah" data-title="Модуль:String" data-language-autonym="Саха тыла" data-language-local-name="Yakut" class="interlanguage-link-target"><span>Саха тыла</span></a></li><li class="interlanguage-link interwiki-szy mw-list-item"><a href="https://szy.wikipedia.org/wiki/bacu-saupu:String" title="bacu-saupu:String – Sakizaya" lang="szy" hreflang="szy" data-title="bacu-saupu:String" data-language-autonym="Sakizaya" data-language-local-name="Sakizaya" class="interlanguage-link-target"><span>Sakizaya</span></a></li><li class="interlanguage-link interwiki-sm mw-list-item"><a href="https://sm.wikipedia.org/wiki/Module:String" title="Module:String – Samoan" lang="sm" hreflang="sm" data-title="Module:String" data-language-autonym="Gagana Samoa" data-language-local-name="Samoan" class="interlanguage-link-target"><span>Gagana Samoa</span></a></li><li class="interlanguage-link interwiki-sa mw-list-item"><a href="https://sa.wikipedia.org/wiki/%E0%A4%AA%E0%A4%9F%E0%A4%B2%E0%A4%AE%E0%A5%8D:String" title="पटलम्:String – Sanskrit" lang="sa" hreflang="sa" data-title="पटलम्:String" data-language-autonym="संस्कृतम्" data-language-local-name="Sanskrit" class="interlanguage-link-target"><span>संस्कृतम्</span></a></li><li class="interlanguage-link interwiki-sat mw-list-item"><a href="https://sat.wikipedia.org/wiki/%E1%B1%A2%E1%B1%B3%E1%B1%B0%E1%B1%A9%E1%B1%9E:String" title="ᱢᱳᱰᱩᱞ:String – Santali" lang="sat" hreflang="sat" data-title="ᱢᱳᱰᱩᱞ:String" data-language-autonym="ᱥᱟᱱᱛᱟᱲᱤ" data-language-local-name="Santali" class="interlanguage-link-target"><span>ᱥᱟᱱᱛᱟᱲᱤ</span></a></li><li class="interlanguage-link interwiki-skr mw-list-item"><a href="https://skr.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:String" title="ماڈیول:String – Saraiki" lang="skr" hreflang="skr" data-title="ماڈیول:String" data-language-autonym="سرائیکی" data-language-local-name="Saraiki" class="interlanguage-link-target"><span>سرائیکی</span></a></li><li class="interlanguage-link interwiki-sc mw-list-item"><a href="https://sc.wikipedia.org/wiki/Module:String" title="Module:String – Sardinian" lang="sc" hreflang="sc" data-title="Module:String" data-language-autonym="Sardu" data-language-local-name="Sardinian" class="interlanguage-link-target"><span>Sardu</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/Module:String" title="Module:String – Scots" lang="sco" hreflang="sco" data-title="Module:String" data-language-autonym="Scots" data-language-local-name="Scots" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-nso mw-list-item"><a href="https://nso.wikipedia.org/wiki/Module:String" title="Module:String – Northern Sotho" lang="nso" hreflang="nso" data-title="Module:String" data-language-autonym="Sesotho sa Leboa" data-language-local-name="Northern Sotho" class="interlanguage-link-target"><span>Sesotho sa Leboa</span></a></li><li class="interlanguage-link interwiki-tn mw-list-item"><a href="https://tn.wikipedia.org/wiki/Module:String" title="Module:String – Tswana" lang="tn" hreflang="tn" data-title="Module:String" data-language-autonym="Setswana" data-language-local-name="Tswana" class="interlanguage-link-target"><span>Setswana</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Moduli:String" title="Moduli:String – Albanian" lang="sq" hreflang="sq" data-title="Moduli:String" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-scn mw-list-item"><a href="https://scn.wikipedia.org/wiki/M%C3%B2dulu:String" title="Mòdulu:String – Sicilian" lang="scn" hreflang="scn" data-title="Mòdulu:String" data-language-autonym="Sicilianu" data-language-local-name="Sicilian" class="interlanguage-link-target"><span>Sicilianu</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/Module:String" title="Module:String – Sinhala" lang="si" hreflang="si" data-title="Module:String" data-language-autonym="සිංහල" data-language-local-name="Sinhala" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Module:String" title="Module:String – Simple English" lang="en-simple" hreflang="en-simple" data-title="Module:String" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sd mw-list-item"><a href="https://sd.wikipedia.org/wiki/%D9%85%D8%A7%DA%8A%D9%8A%D9%88%D9%84:String" title="ماڊيول:String – Sindhi" lang="sd" hreflang="sd" data-title="ماڊيول:String" data-language-autonym="سنڌي" data-language-local-name="Sindhi" class="interlanguage-link-target"><span>سنڌي</span></a></li><li class="interlanguage-link interwiki-ss mw-list-item"><a href="https://ss.wikipedia.org/wiki/Module:String" title="Module:String – Swati" lang="ss" hreflang="ss" data-title="Module:String" data-language-autonym="SiSwati" data-language-local-name="Swati" class="interlanguage-link-target"><span>SiSwati</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Modul:String" title="Modul:String – Slovak" lang="sk" hreflang="sk" data-title="Modul:String" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Modul:Niz" title="Modul:Niz – Slovenian" lang="sl" hreflang="sl" data-title="Modul:Niz" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-szl mw-list-item"><a href="https://szl.wikipedia.org/wiki/Modu%C5%82:String" title="Moduł:String – Silesian" lang="szl" hreflang="szl" data-title="Moduł:String" data-language-autonym="Ślůnski" data-language-local-name="Silesian" class="interlanguage-link-target"><span>Ślůnski</span></a></li><li class="interlanguage-link interwiki-so mw-list-item"><a href="https://so.wikipedia.org/wiki/Module:String" title="Module:String – Somali" lang="so" hreflang="so" data-title="Module:String" data-language-autonym="Soomaaliga" data-language-local-name="Somali" class="interlanguage-link-target"><span>Soomaaliga</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D9%85%DB%86%D8%AF%DB%8C%D9%88%D9%88%D9%84:String" title="مۆدیوول:String – Central Kurdish" lang="ckb" hreflang="ckb" data-title="مۆدیوول:String" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:String" title="Модул:String – Serbian" lang="sr" hreflang="sr" data-title="Модул:String" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Modul:String" title="Modul:String – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Modul:String" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-su mw-list-item"><a href="https://su.wikipedia.org/wiki/Modul:String" title="Modul:String – Sundanese" lang="su" hreflang="su" data-title="Modul:String" data-language-autonym="Sunda" data-language-local-name="Sundanese" class="interlanguage-link-target"><span>Sunda</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Moduuli:String" title="Moduuli:String – Finnish" lang="fi" hreflang="fi" data-title="Moduuli:String" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Modul:String" title="Modul:String – Swedish" lang="sv" hreflang="sv" data-title="Modul:String" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/Module:String" title="Module:String – Tagalog" lang="tl" hreflang="tl" data-title="Module:String" data-language-autonym="Tagalog" data-language-local-name="Tagalog" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/Module:String" title="Module:String – Tamil" lang="ta" hreflang="ta" data-title="Module:String" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-shi mw-list-item"><a href="https://shi.wikipedia.org/wiki/Module:String" title="Module:String – Tachelhit" lang="shi" hreflang="shi" data-title="Module:String" data-language-autonym="Taclḥit" data-language-local-name="Tachelhit" class="interlanguage-link-target"><span>Taclḥit</span></a></li><li class="interlanguage-link interwiki-kab mw-list-item"><a href="https://kab.wikipedia.org/wiki/Module:String" title="Module:String – Kabyle" lang="kab" hreflang="kab" data-title="Module:String" data-language-autonym="Taqbaylit" data-language-local-name="Kabyle" class="interlanguage-link-target"><span>Taqbaylit</span></a></li><li class="interlanguage-link interwiki-roa-tara mw-list-item"><a href="https://roa-tara.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Tarantino" lang="nap-x-tara" hreflang="nap-x-tara" data-title="Modulo:String" data-language-autonym="Tarandíne" data-language-local-name="Tarantino" class="interlanguage-link-target"><span>Tarandíne</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Tatar" lang="tt" hreflang="tt" data-title="Модуль:String" data-language-autonym="Татарча / tatarça" data-language-local-name="Tatar" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-shn mw-list-item"><a href="https://shn.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%82%83%E1%82%87%E1%81%B5%E1%80%BB%E1%80%B0%E1%80%B8:String" title="မေႃႇၵျူး:String – Shan" lang="shn" hreflang="shn" data-title="မေႃႇၵျူး:String" data-language-autonym="ၽႃႇသႃႇတႆး " data-language-local-name="Shan" class="interlanguage-link-target"><span>ၽႃႇသႃႇတႆး </span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%AE%E0%B0%BE%E0%B0%A1%E0%B1%8D%E0%B0%AF%E0%B1%82%E0%B0%B2%E0%B1%8D:String" title="మాడ్యూల్:String – Telugu" lang="te" hreflang="te" data-title="మాడ్యూల్:String" data-language-autonym="తెలుగు" data-language-local-name="Telugu" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A1%E0%B8%AD%E0%B8%94%E0%B8%B9%E0%B8%A5:String" title="มอดูล:String – Thai" lang="th" hreflang="th" data-title="มอดูล:String" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-din mw-list-item"><a href="https://din.wikipedia.org/wiki/Muk%C3%A4%C3%A4c%C3%ABt%C3%B6k:String" title="Mukääcëtök:String – Dinka" lang="din" hreflang="din" data-title="Mukääcëtök:String" data-language-autonym="Thuɔŋjäŋ" data-language-local-name="Dinka" class="interlanguage-link-target"><span>Thuɔŋjäŋ</span></a></li><li class="interlanguage-link interwiki-ti mw-list-item"><a href="https://ti.wikipedia.org/wiki/%E1%88%9E%E1%8B%B5%E1%8B%A9%E1%88%8D:String" title="ሞድዩል:String – Tigrinya" lang="ti" hreflang="ti" data-title="ሞድዩል:String" data-language-autonym="ትግርኛ" data-language-local-name="Tigrinya" class="interlanguage-link-target"><span>ትግርኛ</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:String" title="Модул:String – Tajik" lang="tg" hreflang="tg" data-title="Модул:String" data-language-autonym="Тоҷикӣ" data-language-local-name="Tajik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-ve mw-list-item"><a href="https://ve.wikipedia.org/wiki/Module:String" title="Module:String – Venda" lang="ve" hreflang="ve" data-title="Module:String" data-language-autonym="Tshivenda" data-language-local-name="Venda" class="interlanguage-link-target"><span>Tshivenda</span></a></li><li class="interlanguage-link interwiki-tcy mw-list-item"><a href="https://tcy.wikipedia.org/wiki/%E0%B2%AE%E0%B3%8B%E0%B2%A1%E0%B3%8D%E0%B2%AF%E0%B3%82%E0%B2%B2%E0%B3%8D:String" title="ಮೋಡ್ಯೂಲ್:String – Tulu" lang="tcy" hreflang="tcy" data-title="ಮೋಡ್ಯೂಲ್:String" data-language-autonym="ತುಳು" data-language-local-name="Tulu" class="interlanguage-link-target"><span>ತುಳು</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Mod%C3%BCl:Dizgi" title="Modül:Dizgi – Turkish" lang="tr" hreflang="tr" data-title="Modül:Dizgi" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tk mw-list-item"><a href="https://tk.wikipedia.org/wiki/Module:String" title="Module:String – Turkmen" lang="tk" hreflang="tk" data-title="Module:String" data-language-autonym="Türkmençe" data-language-local-name="Turkmen" class="interlanguage-link-target"><span>Türkmençe</span></a></li><li class="interlanguage-link interwiki-tyv mw-list-item"><a href="https://tyv.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Tuvinian" lang="tyv" hreflang="tyv" data-title="Модуль:String" data-language-autonym="Тыва дыл" data-language-local-name="Tuvinian" class="interlanguage-link-target"><span>Тыва дыл</span></a></li><li class="interlanguage-link interwiki-udm mw-list-item"><a href="https://udm.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Udmurt" lang="udm" hreflang="udm" data-title="Модуль:String" data-language-autonym="Удмурт" data-language-local-name="Udmurt" class="interlanguage-link-target"><span>Удмурт</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:String" title="Модуль:String – Ukrainian" lang="uk" hreflang="uk" data-title="Модуль:String" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:String" title="ماڈیول:String – Urdu" lang="ur" hreflang="ur" data-title="ماڈیول:String" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-za mw-list-item"><a href="https://za.wikipedia.org/wiki/%E6%A8%A1%E5%9D%97:String" title="模块:String – Zhuang" lang="za" hreflang="za" data-title="模块:String" data-language-autonym="Vahcuengh" data-language-local-name="Zhuang" class="interlanguage-link-target"><span>Vahcuengh</span></a></li><li class="interlanguage-link interwiki-vec mw-list-item"><a href="https://vec.wikipedia.org/wiki/Modulo:String" title="Modulo:String – Venetian" lang="vec" hreflang="vec" data-title="Modulo:String" data-language-autonym="Vèneto" data-language-local-name="Venetian" class="interlanguage-link-target"><span>Vèneto</span></a></li><li class="interlanguage-link interwiki-vep mw-list-item"><a href="https://vep.wikipedia.org/wiki/Moodul:String" title="Moodul:String – Veps" lang="vep" hreflang="vep" data-title="Moodul:String" data-language-autonym="Vepsän kel’" data-language-local-name="Veps" class="interlanguage-link-target"><span>Vepsän kel’</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/M%C3%B4_%C4%91un:String" title="Mô đun:String – Vietnamese" lang="vi" hreflang="vi" data-title="Mô đun:String" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-vo mw-list-item"><a href="https://vo.wikipedia.org/wiki/Module:String" title="Module:String – Volapük" lang="vo" hreflang="vo" data-title="Module:String" data-language-autonym="Volapük" data-language-local-name="Volapük" class="interlanguage-link-target"><span>Volapük</span></a></li><li class="interlanguage-link interwiki-guc mw-list-item"><a href="https://guc.wikipedia.org/wiki/M%C3%B3dulo:String" title="Módulo:String – Wayuu" lang="guc" hreflang="guc" data-title="Módulo:String" data-language-autonym="Wayuunaiki" data-language-local-name="Wayuu" class="interlanguage-link-target"><span>Wayuunaiki</span></a></li><li class="interlanguage-link interwiki-zh-classical mw-list-item"><a href="https://zh-classical.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Literary Chinese" lang="lzh" hreflang="lzh" data-title="模組:String" data-language-autonym="文言" data-language-local-name="Literary Chinese" class="interlanguage-link-target"><span>文言</span></a></li><li class="interlanguage-link interwiki-war mw-list-item"><a href="https://war.wikipedia.org/wiki/Module:String" title="Module:String – Waray" lang="war" hreflang="war" data-title="Module:String" data-language-autonym="Winaray" data-language-local-name="Waray" class="interlanguage-link-target"><span>Winaray</span></a></li><li class="interlanguage-link interwiki-wo mw-list-item"><a href="https://wo.wikipedia.org/wiki/Module:String" title="Module:String – Wolof" lang="wo" hreflang="wo" data-title="Module:String" data-language-autonym="Wolof" data-language-local-name="Wolof" class="interlanguage-link-target"><span>Wolof</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/%E6%A8%A1%E5%9D%97:String" title="模块:String – Wu" lang="wuu" hreflang="wuu" data-title="模块:String" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-ts mw-list-item"><a href="https://ts.wikipedia.org/wiki/Module:String" title="Module:String – Tsonga" lang="ts" hreflang="ts" data-title="Module:String" data-language-autonym="Xitsonga" data-language-local-name="Tsonga" class="interlanguage-link-target"><span>Xitsonga</span></a></li><li class="interlanguage-link interwiki-yi mw-list-item"><a href="https://yi.wikipedia.org/wiki/%D7%99%D7%97%D7%99%D7%93%D7%94:String" title="יחידה:String – Yiddish" lang="yi" hreflang="yi" data-title="יחידה:String" data-language-autonym="ייִדיש" data-language-local-name="Yiddish" class="interlanguage-link-target"><span>ייִדיש</span></a></li><li class="interlanguage-link interwiki-yo mw-list-item"><a href="https://yo.wikipedia.org/wiki/Module:String" title="Module:String – Yoruba" lang="yo" hreflang="yo" data-title="Module:String" data-language-autonym="Yorùbá" data-language-local-name="Yoruba" class="interlanguage-link-target"><span>Yorùbá</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:String" title="模組:String – Cantonese" lang="yue" hreflang="yue" data-title="模組:String" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-diq mw-list-item"><a href="https://diq.wikipedia.org/wiki/Modul:String" title="Modul:String – Zazaki" lang="diq" hreflang="diq" data-title="Modul:String" data-language-autonym="Zazaki" data-language-local-name="Zazaki" class="interlanguage-link-target"><span>Zazaki</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Module:String" title="Module:String – Chinese" lang="zh" hreflang="zh" data-title="Module:String" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-btm mw-list-item"><a href="https://btm.wikipedia.org/wiki/Modul:String" title="Modul:String – Batak Mandailing" lang="btm" hreflang="btm" data-title="Modul:String" data-language-autonym="Batak Mandailing" data-language-local-name="Batak Mandailing" class="interlanguage-link-target"><span>Batak Mandailing</span></a></li><li class="interlanguage-link interwiki-iba mw-list-item"><a href="https://iba.wikipedia.org/wiki/Modul:String" title="Modul:String – Iban" lang="iba" hreflang="iba" data-title="Modul:String" data-language-autonym="Jaku Iban" data-language-local-name="Iban" class="interlanguage-link-target"><span>Jaku Iban</span></a></li><li class="interlanguage-link interwiki-rsk mw-list-item"><a href="https://rsk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:String" title="Модул:String – Pannonian Rusyn" lang="rsk" hreflang="rsk" data-title="Модул:String" data-language-autonym="Руски" data-language-local-name="Pannonian Rusyn" class="interlanguage-link-target"><span>Руски</span></a></li><li class="interlanguage-link interwiki-tdd mw-list-item"><a href="https://tdd.wikipedia.org/wiki/%E1%A5%9B%E1%A5%A8%E1%A5%9D%E1%A5%B1_%E1%A5%93%E1%A5%A7%E1%A5%B0:String" title="ᥛᥨᥝᥱ ᥓᥧᥰ:String – Tai Nuea" lang="tdd" hreflang="tdd" data-title="ᥛᥨᥝᥱ ᥓᥧᥰ:String" data-language-autonym="ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ" data-language-local-name="Tai Nuea" class="interlanguage-link-target"><span>ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q7253814#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Module:String" title="View the module page [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Module_talk:String" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Module:String"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:String&action=edit" title="This page is protected. You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:String&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Module:String"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:String&action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:String&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Module:String" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Module:String" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Module:String&oldid=1243840019" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:String&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModule%3AString"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModule%3AString"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-electronpdfservice-sidebar-portlet-heading" class="vector-menu mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="electron-print_pdf" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Module%3AString&action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Module:String" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-foundation mw-list-item"><a href="https://foundation.wikimedia.org/wiki/Module:String" hreflang="en"><span>Wikimedia Foundation</span></a></li><li class="wb-otherproject-link wb-otherproject-mediawiki mw-list-item"><a href="https://www.mediawiki.org/wiki/Module:String" hreflang="en"><span>MediaWiki</span></a></li><li class="wb-otherproject-link wb-otherproject-meta mw-list-item"><a href="https://meta.wikimedia.org/wiki/Module:String" hreflang="en"><span>Meta-Wiki</span></a></li><li class="wb-otherproject-link wb-otherproject-outreach mw-list-item"><a href="https://outreach.wikimedia.org/wiki/Module:String" hreflang="en"><span>Wikimedia Outreach</span></a></li><li class="wb-otherproject-link wb-otherproject-sources mw-list-item"><a href="https://wikisource.org/wiki/Module:String" hreflang="en"><span>Multilingual Wikisource</span></a></li><li class="wb-otherproject-link wb-otherproject-species mw-list-item"><a href="https://species.wikimedia.org/wiki/Module:String" hreflang="en"><span>Wikispecies</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://en.wikibooks.org/wiki/Module:String" hreflang="en"><span>Wikibooks</span></a></li><li class="wb-otherproject-link wb-otherproject-wikidata mw-list-item"><a href="https://www.wikidata.org/wiki/Module:String" hreflang="en"><span>Wikidata</span></a></li><li class="wb-otherproject-link wb-otherproject-wikifunctions mw-list-item"><a href="https://www.wikifunctions.org/wiki/Module:String" hreflang="en"><span>Wikifunctions</span></a></li><li class="wb-otherproject-link wb-otherproject-wikimania mw-list-item"><a href="https://wikimania.wikimedia.org/wiki/Module:String" hreflang="en"><span>Wikimania</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiquote mw-list-item"><a href="https://en.wikiquote.org/wiki/Module:String" hreflang="en"><span>Wikiquote</span></a></li><li class="wb-otherproject-link wb-otherproject-wikisource mw-list-item"><a href="https://en.wikisource.org/wiki/Module:String" hreflang="en"><span>Wikisource</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiversity mw-list-item"><a href="https://en.wikiversity.org/wiki/Module:String" hreflang="en"><span>Wikiversity</span></a></li><li class="wb-otherproject-link wb-otherproject-wikivoyage mw-list-item"><a href="https://en.wikivoyage.org/wiki/Module:String" hreflang="en"><span>Wikivoyage</span></a></li><li class="wb-otherproject-link wb-otherproject-wiktionary mw-list-item"><a href="https://en.wiktionary.org/wiki/Module:string" hreflang="en"><span>Wiktionary</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q7253814" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> <div id="mw-indicator-pp-default" class="mw-indicator"><div class="mw-parser-output"><span typeof="mw:File"><a href="/wiki/Wikipedia:Protection_policy#full" title="This high-risk module is permanently protected to prevent vandalism"><img alt="Permanently protected module" src="//upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/20px-Full-protection-shackle.svg.png" decoding="async" width="20" height="20" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/30px-Full-protection-shackle.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/40px-Full-protection-shackle.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></div></div> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1237875617">.mw-parser-output .documentation,.mw-parser-output .documentation-metadata{border:1px solid #a2a9b1;background-color:#ecfcf4;clear:both}.mw-parser-output .documentation{margin:1em 0 0 0;padding:1em}.mw-parser-output .documentation-metadata{margin:0.2em 0;font-style:italic;padding:0.4em 1em}.mw-parser-output .documentation-startbox{padding-bottom:3px;border-bottom:1px solid #aaa;margin-bottom:1ex}.mw-parser-output .documentation-heading{font-weight:bold;font-size:125%}.mw-parser-output .documentation-clear{clear:both}.mw-parser-output .documentation-toolbar{font-style:normal;font-size:85%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .documentation,html.skin-theme-clientpref-night .mw-parser-output .documentation-metadata{background-color:#0b1e1c}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .documentation,html.skin-theme-clientpref-os .mw-parser-output .documentation-metadata{background-color:#0b1e1c}}</style><div class="documentation-container" role="complementary" aria-labelledby="documentation-heading"> <div class="documentation"> <div class="documentation-startbox"> <span class="documentation-heading" id="documentation-heading"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png" decoding="async" width="50" height="22" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/75px-Test_Template_Info-Icon_-_Version_%282%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/100px-Test_Template_Info-Icon_-_Version_%282%29.svg.png 2x" data-file-width="1792" data-file-height="800" /></span></span> Module documentation</span><span class="mw-editsection-like plainlinks">[<a href="/wiki/Module:String/doc" title="Module:String/doc">view</a>] [<a href="/wiki/Special:EditPage/Module:String/doc" title="Special:EditPage/Module:String/doc">edit</a>] [<a href="/wiki/Special:PageHistory/Module:String/doc" title="Special:PageHistory/Module:String/doc">history</a>] [<a href="/wiki/Special:Purge/Module:String" title="Special:Purge/Module:String">purge</a>]</span></div> <style data-mw-deduplicate="TemplateStyles:r1238436933">.mw-parser-output .ombox{margin:4px 0;border-collapse:collapse;border:1px solid #a2a9b1;background-color:var(--background-color-neutral-subtle,#f8f9fa);box-sizing:border-box;color:var(--color-base,#202122)}.mw-parser-output .ombox.mbox-small{font-size:88%;line-height:1.25em}.mw-parser-output .ombox-speedy{border:2px solid #b32424;background-color:#fee7e6}.mw-parser-output .ombox-delete{border:2px solid #b32424}.mw-parser-output .ombox-content{border:1px solid #f28500}.mw-parser-output .ombox-style{border:1px solid #fc3}.mw-parser-output .ombox-move{border:1px solid #9932cc}.mw-parser-output .ombox-protection{border:2px solid #a2a9b1}.mw-parser-output .ombox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .ombox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .ombox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .ombox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ombox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .ombox{margin:4px 10%}.mw-parser-output .ombox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;width:238px}}body.skin--responsive .mw-parser-output table.ombox img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .ombox-speedy{background-color:#310402}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .ombox-speedy{background-color:#310402}}</style><table class="plainlinks ombox ombox-content" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></td><td class="mbox-text"><b>This Lua module is used in system messages</b>, and on <a class="external text" href="https://linkcount.toolforge.org/?project=en.wikipedia.org&page=Module%3AString#transclusions">approximately 11,000,000 pages, or roughly 18% of all pages</a>.<br />Changes to it can cause immediate changes to the Wikipedia user interface.<br /> To avoid major disruption and server load, any changes should be tested in the module's <a href="/wiki/Module:String/sandbox" title="Module:String/sandbox">/sandbox</a> or <a href="/wiki/Module:String/testcases" title="Module:String/testcases">/testcases</a> subpages, or in your own <a href="/wiki/Module:Sandbox" title="Module:Sandbox">module sandbox</a>. The tested changes can be added to this page in a single edit. Please discuss changes on the <a href="/wiki/Module_talk:String" title="Module talk:String">talk page</a> before implementing them.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238436933"><table class="plainlinks ombox ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="Protected" src="//upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/40px-Full-protection-shackle.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/60px-Full-protection-shackle.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/44/Full-protection-shackle.svg/80px-Full-protection-shackle.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></td><td class="mbox-text">This module is <a href="/wiki/Category:Modules_subject_to_page_protection" title="Category:Modules subject to page protection">subject to page protection</a>. It is a <a href="/wiki/Wikipedia:High-risk_templates" title="Wikipedia:High-risk templates">highly visible module</a> in use by a very large number of pages, or is <a href="/wiki/Wikipedia:Substitution" title="Wikipedia:Substitution">substituted</a> very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is <a href="/wiki/Wikipedia:Protection_policy" title="Wikipedia:Protection policy">protected</a> from editing.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238436933"><table class="plainlinks ombox ombox-protection" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/0/0f/Cascade-protection-shackle.svg/40px-Cascade-protection-shackle.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/0/0f/Cascade-protection-shackle.svg/60px-Cascade-protection-shackle.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/0/0f/Cascade-protection-shackle.svg/80px-Cascade-protection-shackle.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></td><td class="mbox-text">This module can only be edited by <a href="/wiki/Wikipedia:Administrators" title="Wikipedia:Administrators">administrators</a> because it is <a href="/wiki/Wikipedia:Transclusion" class="mw-redirect" title="Wikipedia:Transclusion">transcluded</a> onto one or more <a href="/wiki/Wikipedia:Protection_policy#Cascading_protection" title="Wikipedia:Protection policy">cascade-protected</a> pages.</td></tr></tbody></table> <p><span class="plainlinks nourlexpansion lx"><a class="mw-selflink selflink">Module:String</a> <span style="font-size:90%;">(<a class="external text" href="https://en.wikipedia.org/w/index.php?title=Module:String&action=edit">edit</a> | <a href="/wiki/Module_talk:String" title="Module talk:String">talk</a> | <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Module:String&action=history">history</a> | <a class="external text" href="https://en.wikipedia.org/wiki/Special:Whatlinkshere/Module:String">links</a> | <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Module:String&action=watch">watch</a> | <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Special:Log&page=Module%3AString">logs</a>)</span></span> </p><p>This module is intended to provide access to basic string functions. </p><p>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. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Global_options">Global options</h2></div> <dl><dt>ignore_errors</dt> <dd>If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message.</dd> <dt>error_category</dt> <dd>If an error occurs, specifies the name of a category to include with the error message. The default category is <a href="/wiki/Category:Errors_reported_by_Module_String" title="Category:Errors reported by Module String">Category:Errors reported by Module String</a> (12).</dd> <dt>no_category</dt> <dd>If set to 'true' or 1, no category will be added if an error is generated.</dd></dl> <p>Unit tests for this module are available at <a href="/wiki/Module:String/testcases" title="Module:String/testcases">Module:String/testcases</a>. </p> <div class="mw-heading mw-heading2"><h2 id="len">len</h2></div> <p>This function returns the length of the target string. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|len|<i>target_string</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|len|s= <i>target_string</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>s</dt> <dd>The string whose length to report</dd></dl> <p>Examples: </p> <ul><li><code>{{#invoke:String|len| abcdefghi }}</code> → 11</li> <li><code>{{#invoke:String|len|s= abcdefghi }}</code> → 9</li></ul> <div class="mw-heading mw-heading2"><h2 id="sub">sub</h2></div> <p>This function returns a substring of the target string at specified inclusive, one-indexed indices. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|sub|<i>target_string</i>|<i>start_index</i>|<i>end_index</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|sub|s= <i>target_string</i> |i= <i>start_index</i> |j= <i>end_index</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>s</dt> <dd>The string to return a subset of</dd> <dt>i</dt> <dd>The first index of the substring to return, defaults to 1.</dd> <dt>j</dt> <dd>The last index of the string to return, defaults to the last character.</dd></dl> <p>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. </p><p>If the requested indices are out of range for the given string, an error is reported. To avoid error messages, use {{<a href="/wiki/Module:Ustring" title="Module:Ustring">#invoke:ustring</a>|sub}} instead. </p><p>Examples: </p> <ul><li><code>"{{#invoke:String|sub| abcdefghi }}"</code> → " abcdefghi "</li> <li><code>"{{#invoke:String|sub|s= abcdefghi }}"</code> → "abcdefghi"</li> <li><code>"{{#invoke:String|sub| abcdefghi | 3 }}"</code> → "bcdefghi "</li> <li><code>"{{#invoke:String|sub|s= abcdefghi |i= 3 }}"</code> → "cdefghi"</li> <li><code>"{{#invoke:String|sub| abcdefghi | 3 | 4 }}"</code> → "bc"</li> <li><code>"{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}"</code> → "cd"</li></ul> <div class="mw-heading mw-heading2"><h2 id="sublength">sublength</h2></div> <p>This function implements the features of <span class="nowrap">{{</span><a href="/wiki/Template:Str_sub_old" title="Template:Str sub old">str sub old</a><span class="nowrap">}}</span> and is kept in order to maintain these older templates. It returns a substring of the target string starting at a specified index and of a specified length. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|sublength|s= <i>target_string</i> |i= <i>start_index</i> |len= <i>length</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>s</dt> <dd>The string</dd> <dt>i</dt> <dd>The starting index of the substring to return. The first character of the string is assigned an index of 0.</dd> <dt>len</dt> <dd>The length of the string to return, defaults to the last character.</dd></dl> <p>Examples: </p> <ul><li><code>{{#invoke:String|sublength|s= abcdefghi }}</code> → abcdefghi</li> <li><code>{{#invoke:String|sublength|s= abcdefghi |i= 3 }}</code> → defghi</li> <li><code>{{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}</code> → defg</li></ul> <div class="mw-heading mw-heading2"><h2 id="match">match</h2></div> <p>This function returns a substring from the source string that matches a specified pattern. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|match|<i>source_string</i>|<i>pattern_string</i>|<i>start_index</i>|<i>match_number</i>|<i>plain_flag</i>|<i>nomatch_output</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|match|s= <i>source_string</i> |pattern= <i>pattern_string</i> |start= <i>start_index</i> |match= <i>match_number</i> |plain= <i>plain_flag</i> |nomatch= <i>nomatch_output</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>s</dt> <dd>The string to search</dd> <dt>pattern</dt> <dd>The pattern or string to find within the string</dd> <dt>start</dt> <dd>The index within the source string to start the search. The first character of the string has index 1. Defaults to 1.</dd> <dt>match</dt> <dd>In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1.</dd> <dt>plain</dt> <dd>Boolean flag indicating that pattern should be understood as plain text and not as a <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">Scribunto ustring pattern</a> (a unicode-friendly <a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a>-style <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a>). Defaults to false (to change: <code>plain=true</code>)</dd> <dt>nomatch</dt> <dd>If no match is found, output the "nomatch" value rather than an error.</dd> <dt>ignore_errors</dt> <dd>If no match is found and ignore_errors=true, output an empty string rather than an error.</dd></dl> <p>If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. </p><p>For information on constructing <a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a> patterns, a form of <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a>, see: </p> <ul><li><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#Patterns" class="extiw" title="mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual">Scribunto patterns</a></li> <li><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Scribunto/Lua_reference_manual#Ustring_patterns" class="extiw" title="mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual">Scribunto Unicode string patterns</a></li></ul> <p>Examples: </p> <ul><li><code>{{#invoke:String|match| abc123def456 |%d+}}</code> → 123</li> <li><code>{{#invoke:String|match|s= abc123def456 |pattern= %d+ }}</code> → 123</li> <li><code>{{#invoke:String|match| abc123def456 |%d+|6}}</code> → 23</li> <li><code>{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}</code> → 3</li> <li><code>{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}</code> → 456</li> <li><code>{{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}</code> → 123</li> <li><code>{{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}</code> → %d+</li> <li><code>{{#invoke:String|match|s= abc |pattern= %d }}</code> → <strong class="error">String Module Error: Match not found</strong></li> <li><code>{{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}</code> → No numeric characters in string</li> <li><code>{{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}</code> →</li> <li><code>{{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }}</code> → 12001200</li></ul> <div class="mw-heading mw-heading2"><h2 id="pos">pos</h2></div> <p>This function returns a single character from the target string at position pos. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|pos|<i>target_string</i>|<i>index_value</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|pos|target= <i>target_string</i> |pos= <i>index_value</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>target</dt> <dd>The string to search</dd> <dt>pos</dt> <dd>The index for the character to return</dd></dl> <p>The first character has an index value of 1. </p><p>If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. </p><p>A requested value of zero, or a value greater than the length of the string returns an error. </p><p>Examples: </p> <ul><li><code>{{#invoke:String|pos| abcdefghi | 4 }}</code> → c</li> <li><code>{{#invoke:String|pos|target= abcdefghi |pos= 4 }}</code> → d</li></ul> <div class="mw-heading mw-heading2"><h2 id="str_find">str_find</h2></div> <p>This function duplicates the behavior of <span class="nowrap">{{</span><a href="/wiki/Template:Str_find" title="Template:Str find">str_find</a><span class="nowrap">}}</span>, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. </p><p>Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". </p><p>Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separately. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|str_find|<i>source_string</i>|<i>target_string</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|str_find|source= <i>source_string</i> |target= <i>target_string</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>source</dt> <dd>The string to search</dd> <dt>target</dt> <dd>The string to find within source</dd></dl> <p>Examples: </p> <ul><li><code>{{#invoke:String|str_find| abc123def }}</code> → 1</li> <li><code>{{#invoke:String|str_find|source= abc123def }}</code> → 1</li> <li><code>{{#invoke:String|str_find| abc123def |123}}</code> → 5</li> <li><code>{{#invoke:String|str_find|source= abc123def |target= 123 }}</code> → 4</li> <li><code>{{#invoke:String|str_find| abc123def |not}}</code> → -1</li></ul> <div class="mw-heading mw-heading2"><h2 id="find">find</h2></div> <p>This function allows one to search for a target string or pattern within another string. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|find|<i>source_string</i>|<i>target_string</i>|<i>start_index</i>|<i>plain_flag</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|find|source= <i>source_string</i> |target= <i>target_string</i> |start= <i>start_index</i> |plain= <i>plain_flag</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>source</dt> <dd>The string to search</dd> <dt>target</dt> <dd>The string or pattern to find within source</dd> <dt>start</dt> <dd>The index within the source string to start the search, defaults to 1</dd> <dt>plain</dt> <dd>Boolean flag indicating that target should be understood as plain text and not as a <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">Scribunto ustring pattern</a> (a unicode-friendly <a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a>-style <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a>); defaults to true</dd></dl> <p>This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. </p><p>This function should be safe for UTF-8 strings. </p><p>Examples: </p> <ul><li><code>{{#invoke:String|find|abc123def|12}}</code> → 4</li> <li><code>{{#invoke:String|find|source=abc123def|target=12}}</code> → 4</li> <li><code>{{#invoke:String|find|source=abc123def|target=pqr}}</code> → 0</li> <li><code>{{#invoke:String|find| abc123def |123}}</code> → 5</li> <li><code>{{#invoke:String|find|source= abc123def |target= 123 }}</code> → 4</li> <li><code>{{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }}</code> → 4</li></ul> <p>When using unnamed parameters, preceding and trailing spaces are kept and counted: </p> <ul><li><code>{{#invoke:String|find| abc123def |c|false}}</code> → 5</li> <li><code>{{#invoke:String|find|source= abc123def |target=c|plain=false}}</code> → 3</li> <li><code>{{#invoke:string|find|abc 123 def|%s|plain=false}}</code> → 4</li></ul> <p>Testing for the presence of a string: </p> <ul><li><code>{{<a href="https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23ifexpr" class="extiw" title="mw:Help:Extension:ParserFunctions">#ifexpr</a>:{{#invoke:string|find|haystack|needle}}|Found needle|Didn't find needle}}</code> → Didn't find needle</li></ul> <p><span class="anchor" id="replace"></span> </p> <div class="mw-heading mw-heading2"><h2 id="replace_(gsub)"><span id="replace_.28gsub.29"></span>replace (gsub)</h2></div> <p>This function allows one to replace a target string or pattern within another string. To Lua programmers: this function works internally by calling <code><a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#mw.ustring.gsub" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">mw.ustring.gsub</a></code>. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|replace|<i>source_str</i>|<i>pattern_string</i>|<i>replace_string</i>|<i>replacement_count</i>|<i>plain_flag</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|replace|source= <i>source_string</i> |pattern= <i>pattern_string</i> |replace= <i>replace_string</i> |count= <i>replacement_count</i> |plain= <i>plain_flag</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>source</dt> <dd>The string to search</dd> <dt>pattern</dt> <dd>The string or pattern to find within source</dd> <dt>replace</dt> <dd>The replacement text</dd> <dt>count</dt> <dd>The number of occurrences to replace; defaults to all</dd> <dt>plain</dt> <dd>Boolean flag indicating that pattern should be understood as plain text and not as a <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">Scribunto ustring pattern</a> (a unicode-friendly <a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a>-style <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a>); defaults to true</dd></dl> <p>Examples: </p> <ul><li><code>"{{#invoke:String|replace| abc123def456 |123|XYZ}}"</code> → " abcXYZdef456 "</li> <li><code>"{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}"</code> → "abcXYZdef456"</li> <li><code>"{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}"</code> → " abcXYZdef456 "</li> <li><code>"{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}"</code> → "abcXYZdef456"</li> <li><code>"{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}"</code> → "abcXYZdefXYZ"</li> <li><code>{{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }}</code> → 12001200</li></ul> <div class="mw-heading mw-heading2"><h2 id="rep">rep</h2></div> <p>Repeats a string <i>n</i> times. A simple function to pipe string.rep to templates. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|rep|<i>source</i>|<i>count</i>}}</code></dd></dl> <p>Parameters: </p> <dl><dt>source</dt> <dd>The string to repeat</dd> <dt>count</dt> <dd>The number of repetitions.</dd></dl> <p>Examples: </p> <ul><li><code>"{{#invoke:String|rep|hello|3}}"</code> → "hellohellohello"</li> <li><code>"{{#invoke:String|rep| hello | 3 }}"</code> → " hello hello hello "</li></ul> <div class="mw-heading mw-heading2"><h2 id="escapePattern">escapePattern</h2></div> <p>In a <a href="https://www.mediawiki.org/wiki/LUAREF#Patterns" class="extiw" title="mw:LUAREF">Lua pattern</a>, changes a <i>class character</i> into a <i>literal character</i>. For example: in a pattern, character <code>.</code> catches "any character"; escapePattern will convert it to <code>%.</code>, catching just the literal character ".". </p><p>Usage: </p> <ul><li><code>{{#invoke:String|escapePattern|<i>pattern_string</i>}}</code></li></ul> <p>Parameters: </p> <dl><dt>pattern_string</dt> <dd>The pattern string to escape</dd></dl> <p>Examples: </p> <ul><li><code>"{{#invoke:String|escapePattern|A.D.}}"</code> → "A%.D%."</li> <li><code>"{{#invoke:String|escapePattern|10%}}"</code> → "10%%"</li></ul> <div class="mw-heading mw-heading2"><h2 id="count">count</h2></div> <p>Counts the number of times a given pattern appears in the arguments that get passed on to this module. Counts disjoint matches only. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|count|<i>source_str</i>|<i>pattern_string</i>|<i>plain_flag</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|count|source= <i>source_string</i> |pattern= <i>pattern_string</i>|plain= <i>plain_flag</i> }}</code></dd></dl> <p>Parameters: </p> <dl><dt>source_string</dt> <dd>The string to count occurrences in</dd> <dt>pattern</dt> <dd>The string or pattern to count occurrences of within source</dd> <dt>plain</dt> <dd>Boolean flag indicating that pattern should be understood as plain text and not as a <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">Scribunto ustring pattern</a> (a unicode-friendly <a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a>-style <a href="/wiki/Regular_expression" title="Regular expression">regular expression</a>); defaults to true</dd></dl> <p>Examples: </p> <ul><li>Count of 'a': <code>"{{#invoke:String|count|aabbcc|a}}"</code> → "2"</li> <li>Count occurrences of 'aba': <code>"{{#invoke:String|count|ababababab|aba}}"</code> → "2"</li> <li>Count of "either 'a' or 'c' ":<code>"{{#invoke:String|count|aabbcc|[ac]|plain=false}}"</code> → "4"</li> <li>Count of "not 'a' ": <code>"{{#invoke:String|count|aaabaaac|[^a]|plain=false}}"</code> → "2"</li> <li>Count of "starts with 'a' ": <code>"{{#invoke:String|count|aaabaaac|^a|plain=false}}"</code> → "1"</li></ul> <div class="mw-heading mw-heading2"><h2 id="join">join</h2></div> <p>Joins all strings passed as arguments into one string, treating the first argument as a separator. </p><p>Usage: </p> <dl><dd><code>{{#invoke:String|join|<i>separator</i>|<i>string1</i>|<i>string2</i>|...}}</code></dd></dl> <p>Parameters: </p> <dl><dt>separator</dt> <dd>String that separates each string being joined together</dd> <dd>Note that leading and trailing spaces are <i>not</i> stripped from the separator.</dd> <dt>string1/string2/...</dt> <dd>Strings being joined together</dd></dl> <p>Examples: </p> <ul><li><code>"{{#invoke:String|join|x|foo|bar|baz}}"</code> → "fooxbarxbaz"</li> <li><code>"{{#invoke:String|join||a|b|c|d|e|f|g}}"</code> → "abcdefg"</li> <li><code>"{{#invoke:String|join|,|a|b|c|d|e|f|g}}"</code> → "a,b,c,d,e,f,g"</li> <li><code>"{{#invoke:String|join|, |a|b|c|d|e|f|g}}"</code> → "a, b, c, d, e, f, g"</li> <li><code>"{{#invoke:String|join| – |a|b|c|d|e|f|g}}"</code> → "a – b – c – d – e – f – g"</li></ul> <p>The preceding example uses the html entity &ndash; but the unicode character also works. </p> <div class="mw-heading mw-heading2"><h2 id="endswith">endswith</h2></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">For the startswith function, see <a href="/wiki/Module:String2#startswith" title="Module:String2">Module:String2 § startswith</a>.</div> <p>Usage: </p> <dl><dd><code>{{#invoke:String|endswith|<i>source_str</i>|<i>search_string</i>}}</code></dd></dl> <p>OR </p> <dl><dd><code>{{#invoke:String|endswith|source= <i>source_string</i> |pattern= <i>search_string</i>}}</code></dd></dl> <p>Returns "yes" if the source string ends with the search string. Use named parameters to have the strings trimmed before use. Despite the parameter name, <i>search_string</i> is not a Lua pattern, it is interpreted literally. </p> <ul><li><code>"{{#invoke:String|endswith|xxxyyy|y}}"</code> → "yes"</li> <li><code>"{{#invoke:String|endswith|xxxyyy|z}}"</code> → ""</li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div> <ul><li>{{<a href="/wiki/Module:Params" title="Module:Params">#invoke:Params</a>|<a href="/wiki/Module:Params#mapping_by_replacing" title="Module:Params">mapping_by_replacing</a>}} and other functions from the same module</li> <li>{{<a href="/wiki/Module:MultiReplace" title="Module:MultiReplace">#invoke:MultiReplace</a>|<a href="/wiki/Module:MultiReplace#main" title="Module:MultiReplace">main</a>}}</li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="String-handling_templates_(help_page)" style="padding:3px"><table class="nowraplinks plainlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:String-handling_templates" title="Template:String-handling templates"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:String-handling_templates" title="Template talk:String-handling templates"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:String-handling_templates" title="Special:EditPage/Template:String-handling templates"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="String-handling_templates_(help_page)" style="font-size:114%;margin:0 4em">String-handling templates <a href="/wiki/Help:Manipulating_strings" title="Help:Manipulating strings">(help page)</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Substring_(select_chunk_of_string_by_its_position)" style="font-size:114%;margin:0 4em">Substring (select chunk of string by its position)</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><table style="width:100%;border-collapse:collapse;border-spacing:0px 0px;border:none;text-align: left;"><tbody><tr style="vertical-align:top"><td style="width:50%;;"> <table style="padding-right: 2em;"><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_sub_new" title="Template:Str sub new">str sub new</a><span class="nowrap">}}</span></td><td> Select a substring based on starting and ending index counted in either direction.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_left" title="Template:Str left">str left</a><span class="nowrap">}}</span></td><td> Keep the first N characters of a string, or duplicate it to N characters.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_crop" title="Template:Str crop">str crop</a><span class="nowrap">}}</span></td><td> Return all but the last N characters of a string.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_index" title="Template:Str index">str index</a><span class="nowrap">}}</span></td><td> Return the N-th character of a string.</td></tr></tbody></table></td><td> <table><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_right" title="Template:Str right">str right</a><span class="nowrap">}}</span></td><td> Return substring starting at N-th character to end of string.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_rightc" title="Template:Str rightc">str rightc</a><span class="nowrap">}}</span></td><td> Return the last N characters of a string; or a given value if empty.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_sub_old" title="Template:Str sub old">str sub old</a><span class="nowrap">}}</span></td><td> Return substring of given length starting at N-th character.</td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Trimming_(select/remove_chunk_of_string_by_character_type)" style="font-size:114%;margin:0 4em">Trimming (select/remove chunk of string by character type)</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><table style="width:100%;border-collapse:collapse;border-spacing:0px 0px;border:none;text-align: left;"><tbody><tr style="vertical-align:top"><td style="width:50%;;"> <table style="padding-right: 2em;"><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Trim" title="Template:Trim">trim</a><span class="nowrap">}}</span></td><td> Trim any leading or trailing whitespace</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_letter/trim" title="Template:Str letter/trim">str letter/trim</a><span class="nowrap">}}</span></td><td> Trim down to the beginning letters.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_number/trim" title="Template:Str number/trim">str number/trim</a><span class="nowrap">}}</span></td><td> Trim down to the beginning numbers.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Trim_brackets" title="Template:Trim brackets">trim brackets</a><span class="nowrap">}}</span></td><td> Trim any leading or trailing square brackets.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Trim_quotes" title="Template:Trim quotes">trim quotes</a><span class="nowrap">}}</span></td><td> Trim leading or trailing matching quotes.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Trim_leading" title="Template:Trim leading">trim leading</a><span class="nowrap">}}</span></td><td> Trim up to six instances of specified <prefix>.</td></tr></tbody></table></td><td> <table><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:String_split" title="Template:String split">string split</a><span class="nowrap">}}</span></td><td> Extract a short string from a long string.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:First_word" title="Template:First word">first word</a><span class="nowrap">}}</span></td><td> Trim down to the first space.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Remove_first_word" title="Template:Remove first word">remove first word</a><span class="nowrap">}}</span></td><td> Remove anything before the first space.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Last_word" title="Template:Last word">last word</a><span class="nowrap">}}</span></td><td> Trim down from the last space.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Remove_last_word" title="Template:Remove last word">remove last word</a><span class="nowrap">}}</span></td><td> Remove anything after the last space.</td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Select/remove_specific_item_from_string" style="font-size:114%;margin:0 4em">Select/remove specific item from string</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><table style="width:100%;border-collapse:collapse;border-spacing:0px 0px;border:none;text-align:left;"><tbody><tr style="vertical-align:top"><td style="width:50%;;"> <table style="padding-right: 2em;"><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Delink" title="Template:Delink">delink</a><span class="nowrap">}}</span>, <span class="nowrap">{{</span><a href="/wiki/Template:Trim_brackets" title="Template:Trim brackets">trim brackets</a><span class="nowrap">}}</span></td><td> Removes wikilink brackets (wikicode); <i>all</i> or <i>outer only</i>.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Plain_text" title="Template:Plain text">Plain text</a><span class="nowrap">}}</span></td><td> Removes wikicode (formatting and brackets)</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:PAGENAMEBASE" title="Template:PAGENAMEBASE">PAGENAMEBASE</a><span class="nowrap">}}</span></td><td> Trim off any parenthesis text at the end of a string (disambiguation).</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Title_disambig_text" title="Template:Title disambig text">title disambig text</a><span class="nowrap">}}</span></td><td> Returns text in parentheses at the end of a string (disambiguation).</td></tr></tbody></table></td><td> <table><tbody><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Title_year" title="Template:Title year">title year</a><span class="nowrap">}}</span></td><td> Returns the 3-or-4-digit year from a pagename, if any.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Title_decade" title="Template:Title decade">title decade</a><span class="nowrap">}}</span></td><td> Returns the 4-digit decade from a pagename (e.g. "1740" from "Foo 1740s bar"), if any.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Title_number" title="Template:Title number">title number</a><span class="nowrap">}}</span></td><td> Returns any number from a pagename.</td></tr><tr style="vertical-align:top"><td style="width: 12em; text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:WikiProjectbasename" title="Template:WikiProjectbasename">WikiProjectbasename</a><span class="nowrap">}}</span></td><td> Removes "WikiProject" from a pagename.</td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Insertion,_replacement_and_length" style="font-size:114%;margin:0 4em">Insertion, replacement and length</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><table style="margin: 0 auto 0; text-align: left;"><tbody><tr style="vertical-align:top"><td> <table style="padding-right: 2em;"><tbody><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Loop" title="Template:Loop">loop</a><span class="nowrap">}}</span></td><td> Repeat character string a specified number of times.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Replace" title="Template:Replace">replace</a><span class="nowrap">}}</span></td><td> Returns the string, after replacing <i>all</i> occurrences of a specified string with another string.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_rep" title="Template:Str rep">str rep</a><span class="nowrap">}}</span></td><td> Returns the string, after replacing the first occurrence of a specified string with another string.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Digits" title="Template:Digits">digits</a><span class="nowrap">}}</span></td><td> Returns the string, after removing all characters that are not digits 0–9</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Nowiki" title="Template:Nowiki">Nowiki</a><span class="nowrap">}}</span></td><td> Displays wikitext as plain text.</td></tr></tbody></table></td><td> <table><tbody><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_len" title="Template:Str len">str len</a><span class="nowrap">}}</span></td><td> Returns a string's length.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_%E2%89%A5_len" title="Template:Str ≥ len">str ≥ len</a><span class="nowrap">}}</span></td><td> Check if a string is "longer or equally long" or "shorter" than a given length.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_%E2%89%A4_len" title="Template:Str ≤ len">str ≤ len</a><span class="nowrap">}}</span></td><td> Check if a string is "shorter or equally long" or "longer" than a given length.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_%E2%89%A0_len" title="Template:Str ≠ len">str ≠ len</a><span class="nowrap">}}</span></td><td> Check if a string is "not equal" or "equal" to a given length.</td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Analysis_and_searching" style="font-size:114%;margin:0 4em">Analysis and searching</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><table style="margin: 0 auto 0; text-align: left;"><tbody><tr style="vertical-align:top"><td> <table style="padding-right: 2em;"><tbody><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_startswith" title="Template:Str startswith">str startswith</a><span class="nowrap">}}</span><br /><span class="nowrap">{{</span><a href="/wiki/Template:Str_endswith" title="Template:Str endswith">str endswith</a><span class="nowrap">}}</span></td><td> Check if a string starts or ends with a given string.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_find" title="Template:Str find">str find</a><span class="nowrap">}}</span>, <span class="nowrap">{{</span><a href="/wiki/Template:Strfind_short" title="Template:Strfind short">strfind short</a><span class="nowrap">}}</span></td><td style="vertical-align:middle;"> Returns the numerical location of a given string in a string.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_count" title="Template:Str count">str count</a><span class="nowrap">}}</span></td><td> Count the number of occurrences of a pattern within a string.</td></tr></tbody></table></td><td> <table><tbody><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Array" title="Template:Array">Array</a><span class="nowrap">}}</span></td><td> Array item manipulation and retrieval.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:A_or_an" title="Template:A or an">a or an</a><span class="nowrap">}}</span></td><td> Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:In_string" title="Template:In string">in string</a><span class="nowrap">}}</span></td><td> Returns optional string when given string is not found</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Isnumeric" title="Template:Isnumeric">Isnumeric</a><span class="nowrap">}}</span></td><td> Returns number when true, blank when not numeric.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_letter" title="Template:Str letter">str letter</a><span class="nowrap">}}</span></td><td> Returns the number of letters that begin a string.</td></tr><tr style="vertical-align:top"><td style="text-align: right; padding-right: 0.75em;"> <span class="nowrap">{{</span><a href="/wiki/Template:Str_number" title="Template:Str number">str number</a><span class="nowrap">}}</span></td><td> Returns the number of numbers that begin a string.</td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible expanded navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Modules_and_built-in_functions" style="font-size:114%;margin:0 4em">Modules and built-in functions</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><div class="div-col" style="text-align:left"> <ul><li><a class="mw-selflink selflink">Module:String</a>, <a href="/wiki/Module:String2" title="Module:String2">Module:String2</a>, <a href="/wiki/Module:Ustring" title="Module:Ustring">Module:Ustring</a>, <a href="/wiki/Module:Text" title="Module:Text">Module:Text</a>, <a href="/wiki/Template:Navbox_wikitext-handling_templates" title="Template:Navbox wikitext-handling templates">wikitext handling</a>: modules that together contain most necessary string functions.</li> <li><a href="https://www.mediawiki.org/wiki/Help:Magic_words" class="extiw" title="mw:Help:Magic words">Magic words</a>: About <code>{{padleft:|}}</code>, <code>{{lc:|}}</code>, <code>{{formatnum:|}}</code> etc.</li> <li><a href="https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions" class="extiw" title="mw:Help:Extension:ParserFunctions">ParserFunctions</a>: About <code>{{#titleparts:|}}, {{#expr:|}}, {{#ifeq:|}}, </code> etc.</li></ul></div></div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div> <li><a href="/wiki/Category:String_manipulation_templates" title="Category:String manipulation templates">Category:String manipulation templates</a> <ul><li><a href="https://commons.wikimedia.org/wiki/Category:String_manipulation_templates" class="extiw" title="c:Category:String manipulation templates">Commons</a></li> <li><a href="https://www.mediawiki.org/wiki/Category:String_manipulation_templates" class="extiw" title="mw:Category:String manipulation templates">MediaWiki</a></li> <li><a href="https://meta.wikimedia.org/wiki/Category:String_manipulation_templates" class="extiw" title="m:Category:String manipulation templates">Meta-Wiki</a></li> <li><a href="https://www.wikidata.org/wiki/Category:String_manipulation_templates" class="extiw" title="d:Category:String manipulation templates">Wikidata</a></li></ul></li> <li><a href="/wiki/Category:Modules_that_manipulate_strings" title="Category:Modules that manipulate strings">Category:Modules that manipulate strings</a></li> </div></td></tr></tbody></table></div> <div class="documentation-clear"></div> </div> <div role="note" class="documentation-metadata plainlinks">The above <a href="/wiki/Wikipedia:Template_documentation" title="Wikipedia:Template documentation">documentation</a> is <a href="/wiki/Help:Transclusion" title="Help:Transclusion">transcluded</a> from <a href="/wiki/Module:String/doc" title="Module:String/doc">Module:String/doc</a>. <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:String/doc" title="Special:EditPage/Module:String/doc">edit</a> | <a href="/wiki/Special:PageHistory/Module:String/doc" title="Special:PageHistory/Module:String/doc">history</a>)</span><br />Editors can experiment in this module's <a href="/wiki/Module:String/sandbox" title="Module:String/sandbox">sandbox</a> <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:String/sandbox" title="Special:EditPage/Module:String/sandbox">edit</a> | <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Special%3AComparePages&page1=Module%3AString&page2=Module%3AString%2Fsandbox">diff</a>)</span> and <a href="/wiki/Module:String/testcases" title="Module:String/testcases">testcases</a> <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:String/testcases" title="Special:EditPage/Module:String/testcases">edit</a> | <a href="/wiki/Module_talk:String/testcases" title="Module talk:String/testcases">run</a>)</span> pages.<br /> <a href="/wiki/Special:PrefixIndex/Module:String/" title="Special:PrefixIndex/Module:String/">Subpages of this module</a>.</div></div> <p><span id="code"></span> </p><div class="mw-highlight mw-highlight-lang-lua mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos" data-line="1"></span></a><span class="cm">--[[</span> </span><span id="L-2"><a href="#L-2"><span class="linenos" data-line="2"></span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos" data-line="3"></span></a><span class="cm">This module is intended to provide access to basic string functions.</span> </span><span id="L-4"><a href="#L-4"><span class="linenos" data-line="4"></span></a> </span><span id="L-5"><a href="#L-5"><span class="linenos" data-line="5"></span></a><span class="cm">Most of the functions provided here can be invoked with named parameters,</span> </span><span id="L-6"><a href="#L-6"><span class="linenos" data-line="6"></span></a><span class="cm">unnamed parameters, or a mixture. If named parameters are used, Mediawiki will</span> </span><span id="L-7"><a href="#L-7"><span class="linenos" data-line="7"></span></a><span class="cm">automatically remove any leading or trailing whitespace from the parameter.</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a><span class="cm">Depending on the intended use, it may be advantageous to either preserve or</span> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a><span class="cm">remove such whitespace.</span> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a> </span><span id="L-11"><a href="#L-11"><span class="linenos" data-line="11"></span></a><span class="cm">Global options</span> </span><span id="L-12"><a href="#L-12"><span class="linenos" data-line="12"></span></a><span class="cm"> ignore_errors: If set to 'true' or 1, any error condition will result in</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a><span class="cm"> an empty string being returned rather than an error message.</span> </span><span id="L-14"><a href="#L-14"><span class="linenos" data-line="14"></span></a> </span><span id="L-15"><a href="#L-15"><span class="linenos" data-line="15"></span></a><span class="cm"> error_category: If an error occurs, specifies the name of a category to</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a><span class="cm"> include with the error message. The default category is</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a><span class="cm"> [Category:Errors reported by Module String].</span> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a><span class="cm"> no_category: If set to 'true' or 1, no category will be added if an error</span> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a><span class="cm"> is generated.</span> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></span></a><span class="cm">Unit tests for this module are available at Module:String/tests.</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a><span class="cm">]]</span> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></span></a><span class="kd">local</span> <span class="n">str</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a><span class="cm">--[[</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a><span class="cm">len</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a><span class="cm">This function returns the length of the target string.</span> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a><span class="cm">Usage:</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a><span class="cm">{{#invoke:String|len|target_string|}}</span> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a><span class="cm">OR</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a><span class="cm">{{#invoke:String|len|s=target_string}}</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a> </span><span id="L-37"><a href="#L-37"><span class="linenos" data-line="37"></span></a><span class="cm">Parameters</span> </span><span id="L-38"><a href="#L-38"><span class="linenos" data-line="38"></span></a><span class="cm"> s: The string whose length to report</span> </span><span id="L-39"><a href="#L-39"><span class="linenos" data-line="39"></span></a> </span><span id="L-40"><a href="#L-40"><span class="linenos" data-line="40"></span></a><span class="cm">If invoked using named parameters, Mediawiki will automatically remove any leading or</span> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a><span class="cm">trailing whitespace from the target string.</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a><span class="cm">]]</span> </span><span id="L-43"><a href="#L-43"><span class="linenos" data-line="43"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">len</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'s'</span><span class="p">}</span> <span class="p">)</span> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a> <span class="kd">local</span> <span class="n">s</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'s'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">len</span><span class="p">(</span> <span class="n">s</span> <span class="p">)</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a><span class="kr">end</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a><span class="cm">--[[</span> </span><span id="L-50"><a href="#L-50"><span class="linenos" data-line="50"></span></a><span class="cm">sub</span> </span><span id="L-51"><a href="#L-51"><span class="linenos" data-line="51"></span></a> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a><span class="cm">This function returns a substring of the target string at specified indices.</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a><span class="cm">Usage:</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a><span class="cm">{{#invoke:String|sub|target_string|start_index|end_index}}</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a><span class="cm">OR</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a><span class="cm">{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a> </span><span id="L-59"><a href="#L-59"><span class="linenos" data-line="59"></span></a><span class="cm">Parameters</span> </span><span id="L-60"><a href="#L-60"><span class="linenos" data-line="60"></span></a><span class="cm"> s: The string to return a subset of</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a><span class="cm"> i: The first index of the substring to return, defaults to 1.</span> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a><span class="cm"> j: The last index of the string to return, defaults to the last character.</span> </span><span id="L-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a><span class="cm">The first character of the string is assigned an index of 1. If either i or j</span> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a><span class="cm">is a negative value, it is interpreted the same as selecting a character by</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a><span class="cm">counting from the end of the string. Hence, a value of -1 is the same as</span> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a><span class="cm">selecting the last character of the string.</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a><span class="cm">If the requested indices are out of range for the given string, an error is</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a><span class="cm">reported.</span> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a><span class="cm">]]</span> </span><span id="L-72"><a href="#L-72"><span class="linenos" data-line="72"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">sub</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-73"><a href="#L-73"><span class="linenos" data-line="73"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span> <span class="s1">'s'</span><span class="p">,</span> <span class="s1">'i'</span><span class="p">,</span> <span class="s1">'j'</span> <span class="p">}</span> <span class="p">)</span> </span><span id="L-74"><a href="#L-74"><span class="linenos" data-line="74"></span></a> <span class="kd">local</span> <span class="n">s</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'s'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a> <span class="kd">local</span> <span class="n">i</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'i'</span><span class="p">]</span> <span class="p">)</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="kd">local</span> <span class="n">j</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'j'</span><span class="p">]</span> <span class="p">)</span> <span class="ow">or</span> <span class="o">-</span><span class="mi">1</span> </span><span id="L-77"><a href="#L-77"><span class="linenos" data-line="77"></span></a> </span><span id="L-78"><a href="#L-78"><span class="linenos" data-line="78"></span></a> <span class="kd">local</span> <span class="n">len</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">len</span><span class="p">(</span> <span class="n">s</span> <span class="p">)</span> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a> <span class="c1">-- Convert negatives for range checking</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></span></a> <span class="n">i</span> <span class="o">=</span> <span class="n">len</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a> <span class="kr">end</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a> <span class="kr">if</span> <span class="n">j</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a> <span class="n">j</span> <span class="o">=</span> <span class="n">len</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a> <span class="kr">end</span> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="o">></span> <span class="n">len</span> <span class="ow">or</span> <span class="n">j</span> <span class="o">></span> <span class="n">len</span> <span class="ow">or</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">j</span> <span class="o"><</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'String subset index out of range'</span> <span class="p">)</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a> <span class="kr">end</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a> <span class="kr">if</span> <span class="n">j</span> <span class="o"><</span> <span class="n">i</span> <span class="kr">then</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'String subset indices out of order'</span> <span class="p">)</span> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a> <span class="kr">end</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span> <span class="n">s</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="p">)</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a><span class="kr">end</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> </span><span id="L-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a><span class="cm">--[[</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a><span class="cm">This function implements that features of {{str sub old}} and is kept in order</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a><span class="cm">to maintain these older templates.</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a><span class="cm">]]</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">sublength</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="kd">local</span> <span class="n">i</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">i</span> <span class="p">)</span> <span class="ow">or</span> <span class="mi">0</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="kd">local</span> <span class="n">len</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">len</span> <span class="p">)</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">s</span><span class="p">,</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">len</span> <span class="ow">and</span> <span class="p">(</span> <span class="n">i</span> <span class="o">+</span> <span class="n">len</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a><span class="kr">end</span> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a> </span><span id="L-108"><a href="#L-108"><span class="linenos" data-line="108"></span></a><span class="cm">--[[</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a><span class="cm">_match</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> </span><span id="L-111"><a href="#L-111"><span class="linenos" data-line="111"></span></a><span class="cm">This function returns a substring from the source string that matches a</span> </span><span id="L-112"><a href="#L-112"><span class="linenos" data-line="112"></span></a><span class="cm">specified pattern. It is exported for use in other modules</span> </span><span id="L-113"><a href="#L-113"><span class="linenos" data-line="113"></span></a> </span><span id="L-114"><a href="#L-114"><span class="linenos" data-line="114"></span></a><span class="cm">Usage:</span> </span><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a><span class="cm">strmatch = require("Module:String")._match</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a><span class="cm">sresult = strmatch( s, pattern, start, match, plain, nomatch )</span> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a><span class="cm">Parameters</span> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></span></a><span class="cm"> s: The string to search</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a><span class="cm"> pattern: The pattern or string to find within the string</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a><span class="cm"> start: The index within the source string to start the search. The first</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a><span class="cm"> character of the string has index 1. Defaults to 1.</span> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a><span class="cm"> match: In some cases it may be possible to make multiple matches on a single</span> </span><span id="L-124"><a href="#L-124"><span class="linenos" data-line="124"></span></a><span class="cm"> string. This specifies which match to return, where the first match is</span> </span><span id="L-125"><a href="#L-125"><span class="linenos" data-line="125"></span></a><span class="cm"> match= 1. If a negative number is specified then a match is returned</span> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a><span class="cm"> counting from the last match. Hence match = -1 is the same as requesting</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a><span class="cm"> the last match. Defaults to 1.</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a><span class="cm"> plain: A flag indicating that the pattern should be understood as plain</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></span></a><span class="cm"> text. Defaults to false.</span> </span><span id="L-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a><span class="cm"> nomatch: If no match is found, output the "nomatch" value rather than an error.</span> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a><span class="cm">For information on constructing Lua patterns, a form of [regular expression], see:</span> </span><span id="L-133"><a href="#L-133"><span class="linenos" data-line="133"></span></a> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a><span class="cm">* http://www.lua.org/manual/5.1/manual.html#5.4.1</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></span></a><span class="cm">* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns</span> </span><span id="L-136"><a href="#L-136"><span class="linenos" data-line="136"></span></a><span class="cm">* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns</span> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a><span class="cm">]]</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a><span class="c1">-- This sub-routine is exported for use in other modules</span> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">_match</span><span class="p">(</span> <span class="n">s</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">match_index</span><span class="p">,</span> <span class="n">plain_flag</span><span class="p">,</span> <span class="n">nomatch</span> <span class="p">)</span> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></span></a> <span class="kr">if</span> <span class="n">s</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-142"><a href="#L-142"><span class="linenos" data-line="142"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'Target string is empty'</span> <span class="p">)</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a> <span class="kr">end</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a> <span class="kr">if</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-145"><a href="#L-145"><span class="linenos" data-line="145"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'Pattern string is empty'</span> <span class="p">)</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a> <span class="kr">end</span> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a> <span class="n">start</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></span></a> <span class="kr">if</span> <span class="nb">math.abs</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="o"><</span> <span class="mi">1</span> <span class="ow">or</span> <span class="nb">math.abs</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="o">></span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">len</span><span class="p">(</span> <span class="n">s</span> <span class="p">)</span> <span class="kr">then</span> </span><span id="L-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'Requested start is out of range'</span> <span class="p">)</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a> <span class="kr">end</span> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a> <span class="kr">if</span> <span class="n">match_index</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-152"><a href="#L-152"><span class="linenos" data-line="152"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'Match index is out of range'</span> <span class="p">)</span> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a> <span class="kr">end</span> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a> <span class="kr">if</span> <span class="n">plain_flag</span> <span class="kr">then</span> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_escapePattern</span><span class="p">(</span> <span class="n">pattern</span> <span class="p">)</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a> <span class="kr">end</span> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a> <span class="kd">local</span> <span class="n">result</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a> <span class="kr">if</span> <span class="n">match_index</span> <span class="o">==</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a> <span class="c1">-- Find first match is simple case</span> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span> <span class="n">s</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">start</span> <span class="p">)</span> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a> <span class="kr">else</span> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a> <span class="kr">if</span> <span class="n">start</span> <span class="o">></span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span> <span class="n">s</span><span class="p">,</span> <span class="n">start</span> <span class="p">)</span> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a> <span class="kr">end</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a> <span class="kd">local</span> <span class="n">iterator</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gmatch</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a> <span class="kr">if</span> <span class="n">match_index</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a> <span class="c1">-- Forward search</span> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a> <span class="kr">for</span> <span class="n">w</span> <span class="kr">in</span> <span class="n">iterator</span> <span class="kr">do</span> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a> <span class="n">match_index</span> <span class="o">=</span> <span class="n">match_index</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a> <span class="kr">if</span> <span class="n">match_index</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">w</span> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a> <span class="kr">break</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a> <span class="kr">end</span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a> <span class="kr">end</span> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a> <span class="kr">else</span> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a> <span class="c1">-- Reverse search</span> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> <span class="kd">local</span> <span class="n">result_table</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a> <span class="kd">local</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> <span class="kr">for</span> <span class="n">w</span> <span class="kr">in</span> <span class="n">iterator</span> <span class="kr">do</span> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a> <span class="n">result_table</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a> <span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> <span class="kr">end</span> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a> </span><span id="L-186"><a href="#L-186"><span class="linenos" data-line="186"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">result_table</span><span class="p">[</span> <span class="n">count</span> <span class="o">+</span> <span class="n">match_index</span> <span class="p">]</span> </span><span id="L-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a> <span class="kr">end</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> <span class="kr">end</span> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> <span class="kr">if</span> <span class="n">result</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a> <span class="kr">if</span> <span class="n">nomatch</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'Match not found'</span> <span class="p">)</span> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a> <span class="kr">else</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a> <span class="kr">return</span> <span class="n">nomatch</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a> <span class="kr">end</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a> <span class="kr">else</span> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a> <span class="kr">return</span> <span class="n">result</span> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a> <span class="kr">end</span> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a><span class="kr">end</span> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a><span class="cm">--[[</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a><span class="cm">match</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a><span class="cm">This function returns a substring from the source string that matches a</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a><span class="cm">specified pattern.</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a> </span><span id="L-207"><a href="#L-207"><span class="linenos" data-line="207"></span></a><span class="cm">Usage:</span> </span><span id="L-208"><a href="#L-208"><span class="linenos" data-line="208"></span></a><span class="cm">{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a><span class="cm">OR</span> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a><span class="cm">{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index</span> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a><span class="cm"> |match=match_number|plain=plain_flag|nomatch=nomatch_output}}</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a><span class="cm">Parameters</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a><span class="cm"> s: The string to search</span> </span><span id="L-215"><a href="#L-215"><span class="linenos" data-line="215"></span></a><span class="cm"> pattern: The pattern or string to find within the string</span> </span><span id="L-216"><a href="#L-216"><span class="linenos" data-line="216"></span></a><span class="cm"> start: The index within the source string to start the search. The first</span> </span><span id="L-217"><a href="#L-217"><span class="linenos" data-line="217"></span></a><span class="cm"> character of the string has index 1. Defaults to 1.</span> </span><span id="L-218"><a href="#L-218"><span class="linenos" data-line="218"></span></a><span class="cm"> match: In some cases it may be possible to make multiple matches on a single</span> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a><span class="cm"> string. This specifies which match to return, where the first match is</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a><span class="cm"> match= 1. If a negative number is specified then a match is returned</span> </span><span id="L-221"><a href="#L-221"><span class="linenos" data-line="221"></span></a><span class="cm"> counting from the last match. Hence match = -1 is the same as requesting</span> </span><span id="L-222"><a href="#L-222"><span class="linenos" data-line="222"></span></a><span class="cm"> the last match. Defaults to 1.</span> </span><span id="L-223"><a href="#L-223"><span class="linenos" data-line="223"></span></a><span class="cm"> plain: A flag indicating that the pattern should be understood as plain</span> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a><span class="cm"> text. Defaults to false.</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a><span class="cm"> nomatch: If no match is found, output the "nomatch" value rather than an error.</span> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a><span class="cm">If invoked using named parameters, Mediawiki will automatically remove any leading or</span> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a><span class="cm">trailing whitespace from each string. In some circumstances this is desirable, in</span> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a><span class="cm">other cases one may want to preserve the whitespace.</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a><span class="cm">If the match_number or start_index are out of range for the string being queried, then</span> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a><span class="cm">this function generates an error. An error is also generated if no match is found.</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a><span class="cm">If one adds the parameter ignore_errors=true, then the error will be suppressed and</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a><span class="cm">an empty string will be returned on any failure.</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a><span class="cm">For information on constructing Lua patterns, a form of [regular expression], see:</span> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a><span class="cm">* http://www.lua.org/manual/5.1/manual.html#5.4.1</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a><span class="cm">* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a><span class="cm">* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns</span> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a><span class="cm">]]</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a><span class="c1">-- This is the entry point for #invoke:String|match</span> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">match</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'s'</span><span class="p">,</span> <span class="s1">'pattern'</span><span class="p">,</span> <span class="s1">'start'</span><span class="p">,</span> <span class="s1">'match'</span><span class="p">,</span> <span class="s1">'plain'</span><span class="p">,</span> <span class="s1">'nomatch'</span><span class="p">}</span> <span class="p">)</span> </span><span id="L-246"><a href="#L-246"><span class="linenos" data-line="246"></span></a> <span class="kd">local</span> <span class="n">s</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'s'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-247"><a href="#L-247"><span class="linenos" data-line="247"></span></a> <span class="kd">local</span> <span class="n">start</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'start'</span><span class="p">]</span> <span class="p">)</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-248"><a href="#L-248"><span class="linenos" data-line="248"></span></a> <span class="kd">local</span> <span class="n">plain_flag</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'plain'</span><span class="p">]</span> <span class="ow">or</span> <span class="kc">false</span> <span class="p">)</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'pattern'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a> <span class="kd">local</span> <span class="n">match_index</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">new_args</span><span class="p">[</span><span class="s1">'match'</span><span class="p">])</span> <span class="ow">or</span> <span class="mi">1</span> <span class="p">)</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a> <span class="kd">local</span> <span class="n">nomatch</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'nomatch'</span><span class="p">]</span> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_match</span><span class="p">(</span> <span class="n">s</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">match_index</span><span class="p">,</span> <span class="n">plain_flag</span><span class="p">,</span> <span class="n">nomatch</span> <span class="p">)</span> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a><span class="kr">end</span> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a><span class="cm">--[[</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a><span class="cm">pos</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a><span class="cm">This function returns a single character from the target string at position pos.</span> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a><span class="cm">Usage:</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a><span class="cm">{{#invoke:String|pos|target_string|index_value}}</span> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a><span class="cm">OR</span> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a><span class="cm">{{#invoke:String|pos|target=target_string|pos=index_value}}</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a><span class="cm">Parameters</span> </span><span id="L-267"><a href="#L-267"><span class="linenos" data-line="267"></span></a><span class="cm"> target: The string to search</span> </span><span id="L-268"><a href="#L-268"><span class="linenos" data-line="268"></span></a><span class="cm"> pos: The index for the character to return</span> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a><span class="cm">If invoked using named parameters, Mediawiki will automatically remove any leading or</span> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a><span class="cm">trailing whitespace from the target string. In some circumstances this is desirable, in</span> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a><span class="cm">other cases one may want to preserve the whitespace.</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a><span class="cm">The first character has an index value of 1.</span> </span><span id="L-275"><a href="#L-275"><span class="linenos" data-line="275"></span></a> </span><span id="L-276"><a href="#L-276"><span class="linenos" data-line="276"></span></a><span class="cm">If one requests a negative value, this function will select a character by counting backwards</span> </span><span id="L-277"><a href="#L-277"><span class="linenos" data-line="277"></span></a><span class="cm">from the end of the string. In other words pos = -1 is the same as asking for the last character.</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></span></a><span class="cm">A requested value of zero, or a value greater than the length of the string returns an error.</span> </span><span id="L-280"><a href="#L-280"><span class="linenos" data-line="280"></span></a><span class="cm">]]</span> </span><span id="L-281"><a href="#L-281"><span class="linenos" data-line="281"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">pos</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'target'</span><span class="p">,</span> <span class="s1">'pos'</span><span class="p">}</span> <span class="p">)</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> <span class="kd">local</span> <span class="n">target_str</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'target'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="kd">local</span> <span class="n">pos</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'pos'</span><span class="p">]</span> <span class="p">)</span> <span class="ow">or</span> <span class="mi">0</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> <span class="kr">if</span> <span class="n">pos</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="nb">math.abs</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span> <span class="o">></span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">len</span><span class="p">(</span> <span class="n">target_str</span> <span class="p">)</span> <span class="kr">then</span> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'String index out of range'</span> <span class="p">)</span> </span><span id="L-288"><a href="#L-288"><span class="linenos" data-line="288"></span></a> <span class="kr">end</span> </span><span id="L-289"><a href="#L-289"><span class="linenos" data-line="289"></span></a> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span> <span class="n">target_str</span><span class="p">,</span> <span class="n">pos</span><span class="p">,</span> <span class="n">pos</span> <span class="p">)</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a><span class="kr">end</span> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a><span class="cm">--[[</span> </span><span id="L-294"><a href="#L-294"><span class="linenos" data-line="294"></span></a><span class="cm">str_find</span> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a> </span><span id="L-296"><a href="#L-296"><span class="linenos" data-line="296"></span></a><span class="cm">This function duplicates the behavior of {{str_find}}, including all of its quirks.</span> </span><span id="L-297"><a href="#L-297"><span class="linenos" data-line="297"></span></a><span class="cm">This is provided in order to support existing templates, but is NOT RECOMMENDED for</span> </span><span id="L-298"><a href="#L-298"><span class="linenos" data-line="298"></span></a><span class="cm">new code and templates. New code is recommended to use the "find" function instead.</span> </span><span id="L-299"><a href="#L-299"><span class="linenos" data-line="299"></span></a> </span><span id="L-300"><a href="#L-300"><span class="linenos" data-line="300"></span></a><span class="cm">Returns the first index in "source" that is a match to "target". Indexing is 1-based,</span> </span><span id="L-301"><a href="#L-301"><span class="linenos" data-line="301"></span></a><span class="cm">and the function returns -1 if the "target" string is not present in "source".</span> </span><span id="L-302"><a href="#L-302"><span class="linenos" data-line="302"></span></a> </span><span id="L-303"><a href="#L-303"><span class="linenos" data-line="303"></span></a><span class="cm">Important Note: If the "target" string is empty / missing, this function returns a</span> </span><span id="L-304"><a href="#L-304"><span class="linenos" data-line="304"></span></a><span class="cm">value of "1", which is generally unexpected behavior, and must be accounted for</span> </span><span id="L-305"><a href="#L-305"><span class="linenos" data-line="305"></span></a><span class="cm">separatetly.</span> </span><span id="L-306"><a href="#L-306"><span class="linenos" data-line="306"></span></a><span class="cm">]]</span> </span><span id="L-307"><a href="#L-307"><span class="linenos" data-line="307"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">str_find</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-308"><a href="#L-308"><span class="linenos" data-line="308"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'source'</span><span class="p">,</span> <span class="s1">'target'</span><span class="p">}</span> <span class="p">)</span> </span><span id="L-309"><a href="#L-309"><span class="linenos" data-line="309"></span></a> <span class="kd">local</span> <span class="n">source_str</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'source'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-310"><a href="#L-310"><span class="linenos" data-line="310"></span></a> <span class="kd">local</span> <span class="n">target_str</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'target'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-311"><a href="#L-311"><span class="linenos" data-line="311"></span></a> </span><span id="L-312"><a href="#L-312"><span class="linenos" data-line="312"></span></a> <span class="kr">if</span> <span class="n">target_str</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-313"><a href="#L-313"><span class="linenos" data-line="313"></span></a> <span class="kr">return</span> <span class="mi">1</span> </span><span id="L-314"><a href="#L-314"><span class="linenos" data-line="314"></span></a> <span class="kr">end</span> </span><span id="L-315"><a href="#L-315"><span class="linenos" data-line="315"></span></a> </span><span id="L-316"><a href="#L-316"><span class="linenos" data-line="316"></span></a> <span class="kd">local</span> <span class="n">start</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">find</span><span class="p">(</span> <span class="n">source_str</span><span class="p">,</span> <span class="n">target_str</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="kc">true</span> <span class="p">)</span> </span><span id="L-317"><a href="#L-317"><span class="linenos" data-line="317"></span></a> <span class="kr">if</span> <span class="n">start</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-318"><a href="#L-318"><span class="linenos" data-line="318"></span></a> <span class="n">start</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> </span><span id="L-319"><a href="#L-319"><span class="linenos" data-line="319"></span></a> <span class="kr">end</span> </span><span id="L-320"><a href="#L-320"><span class="linenos" data-line="320"></span></a> </span><span id="L-321"><a href="#L-321"><span class="linenos" data-line="321"></span></a> <span class="kr">return</span> <span class="n">start</span> </span><span id="L-322"><a href="#L-322"><span class="linenos" data-line="322"></span></a><span class="kr">end</span> </span><span id="L-323"><a href="#L-323"><span class="linenos" data-line="323"></span></a> </span><span id="L-324"><a href="#L-324"><span class="linenos" data-line="324"></span></a><span class="cm">--[[</span> </span><span id="L-325"><a href="#L-325"><span class="linenos" data-line="325"></span></a><span class="cm">find</span> </span><span id="L-326"><a href="#L-326"><span class="linenos" data-line="326"></span></a> </span><span id="L-327"><a href="#L-327"><span class="linenos" data-line="327"></span></a><span class="cm">This function allows one to search for a target string or pattern within another</span> </span><span id="L-328"><a href="#L-328"><span class="linenos" data-line="328"></span></a><span class="cm">string.</span> </span><span id="L-329"><a href="#L-329"><span class="linenos" data-line="329"></span></a> </span><span id="L-330"><a href="#L-330"><span class="linenos" data-line="330"></span></a><span class="cm">Usage:</span> </span><span id="L-331"><a href="#L-331"><span class="linenos" data-line="331"></span></a><span class="cm">{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}</span> </span><span id="L-332"><a href="#L-332"><span class="linenos" data-line="332"></span></a><span class="cm">OR</span> </span><span id="L-333"><a href="#L-333"><span class="linenos" data-line="333"></span></a><span class="cm">{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}</span> </span><span id="L-334"><a href="#L-334"><span class="linenos" data-line="334"></span></a> </span><span id="L-335"><a href="#L-335"><span class="linenos" data-line="335"></span></a><span class="cm">Parameters</span> </span><span id="L-336"><a href="#L-336"><span class="linenos" data-line="336"></span></a><span class="cm"> source: The string to search</span> </span><span id="L-337"><a href="#L-337"><span class="linenos" data-line="337"></span></a><span class="cm"> target: The string or pattern to find within source</span> </span><span id="L-338"><a href="#L-338"><span class="linenos" data-line="338"></span></a><span class="cm"> start: The index within the source string to start the search, defaults to 1</span> </span><span id="L-339"><a href="#L-339"><span class="linenos" data-line="339"></span></a><span class="cm"> plain: Boolean flag indicating that target should be understood as plain</span> </span><span id="L-340"><a href="#L-340"><span class="linenos" data-line="340"></span></a><span class="cm"> text and not as a Lua style regular expression, defaults to true</span> </span><span id="L-341"><a href="#L-341"><span class="linenos" data-line="341"></span></a> </span><span id="L-342"><a href="#L-342"><span class="linenos" data-line="342"></span></a><span class="cm">If invoked using named parameters, Mediawiki will automatically remove any leading or</span> </span><span id="L-343"><a href="#L-343"><span class="linenos" data-line="343"></span></a><span class="cm">trailing whitespace from the parameter. In some circumstances this is desirable, in</span> </span><span id="L-344"><a href="#L-344"><span class="linenos" data-line="344"></span></a><span class="cm">other cases one may want to preserve the whitespace.</span> </span><span id="L-345"><a href="#L-345"><span class="linenos" data-line="345"></span></a> </span><span id="L-346"><a href="#L-346"><span class="linenos" data-line="346"></span></a><span class="cm">This function returns the first index >= "start" where "target" can be found</span> </span><span id="L-347"><a href="#L-347"><span class="linenos" data-line="347"></span></a><span class="cm">within "source". Indices are 1-based. If "target" is not found, then this</span> </span><span id="L-348"><a href="#L-348"><span class="linenos" data-line="348"></span></a><span class="cm">function returns 0. If either "source" or "target" are missing / empty, this</span> </span><span id="L-349"><a href="#L-349"><span class="linenos" data-line="349"></span></a><span class="cm">function also returns 0.</span> </span><span id="L-350"><a href="#L-350"><span class="linenos" data-line="350"></span></a> </span><span id="L-351"><a href="#L-351"><span class="linenos" data-line="351"></span></a><span class="cm">This function should be safe for UTF-8 strings.</span> </span><span id="L-352"><a href="#L-352"><span class="linenos" data-line="352"></span></a><span class="cm">]]</span> </span><span id="L-353"><a href="#L-353"><span class="linenos" data-line="353"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">find</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-354"><a href="#L-354"><span class="linenos" data-line="354"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'source'</span><span class="p">,</span> <span class="s1">'target'</span><span class="p">,</span> <span class="s1">'start'</span><span class="p">,</span> <span class="s1">'plain'</span> <span class="p">}</span> <span class="p">)</span> </span><span id="L-355"><a href="#L-355"><span class="linenos" data-line="355"></span></a> <span class="kd">local</span> <span class="n">source_str</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'source'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-356"><a href="#L-356"><span class="linenos" data-line="356"></span></a> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'target'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-357"><a href="#L-357"><span class="linenos" data-line="357"></span></a> <span class="kd">local</span> <span class="n">start_pos</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">new_args</span><span class="p">[</span><span class="s1">'start'</span><span class="p">])</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-358"><a href="#L-358"><span class="linenos" data-line="358"></span></a> <span class="kd">local</span> <span class="n">plain</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'plain'</span><span class="p">]</span> <span class="ow">or</span> <span class="kc">true</span> </span><span id="L-359"><a href="#L-359"><span class="linenos" data-line="359"></span></a> </span><span id="L-360"><a href="#L-360"><span class="linenos" data-line="360"></span></a> <span class="kr">if</span> <span class="n">source_str</span> <span class="o">==</span> <span class="s1">''</span> <span class="ow">or</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-361"><a href="#L-361"><span class="linenos" data-line="361"></span></a> <span class="kr">return</span> <span class="mi">0</span> </span><span id="L-362"><a href="#L-362"><span class="linenos" data-line="362"></span></a> <span class="kr">end</span> </span><span id="L-363"><a href="#L-363"><span class="linenos" data-line="363"></span></a> </span><span id="L-364"><a href="#L-364"><span class="linenos" data-line="364"></span></a> <span class="n">plain</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span> <span class="n">plain</span> <span class="p">)</span> </span><span id="L-365"><a href="#L-365"><span class="linenos" data-line="365"></span></a> </span><span id="L-366"><a href="#L-366"><span class="linenos" data-line="366"></span></a> <span class="kd">local</span> <span class="n">start</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">find</span><span class="p">(</span> <span class="n">source_str</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">start_pos</span><span class="p">,</span> <span class="n">plain</span> <span class="p">)</span> </span><span id="L-367"><a href="#L-367"><span class="linenos" data-line="367"></span></a> <span class="kr">if</span> <span class="n">start</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-368"><a href="#L-368"><span class="linenos" data-line="368"></span></a> <span class="n">start</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-369"><a href="#L-369"><span class="linenos" data-line="369"></span></a> <span class="kr">end</span> </span><span id="L-370"><a href="#L-370"><span class="linenos" data-line="370"></span></a> </span><span id="L-371"><a href="#L-371"><span class="linenos" data-line="371"></span></a> <span class="kr">return</span> <span class="n">start</span> </span><span id="L-372"><a href="#L-372"><span class="linenos" data-line="372"></span></a><span class="kr">end</span> </span><span id="L-373"><a href="#L-373"><span class="linenos" data-line="373"></span></a> </span><span id="L-374"><a href="#L-374"><span class="linenos" data-line="374"></span></a><span class="cm">--[[</span> </span><span id="L-375"><a href="#L-375"><span class="linenos" data-line="375"></span></a><span class="cm">replace</span> </span><span id="L-376"><a href="#L-376"><span class="linenos" data-line="376"></span></a> </span><span id="L-377"><a href="#L-377"><span class="linenos" data-line="377"></span></a><span class="cm">This function allows one to replace a target string or pattern within another</span> </span><span id="L-378"><a href="#L-378"><span class="linenos" data-line="378"></span></a><span class="cm">string.</span> </span><span id="L-379"><a href="#L-379"><span class="linenos" data-line="379"></span></a> </span><span id="L-380"><a href="#L-380"><span class="linenos" data-line="380"></span></a><span class="cm">Usage:</span> </span><span id="L-381"><a href="#L-381"><span class="linenos" data-line="381"></span></a><span class="cm">{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}</span> </span><span id="L-382"><a href="#L-382"><span class="linenos" data-line="382"></span></a><span class="cm">OR</span> </span><span id="L-383"><a href="#L-383"><span class="linenos" data-line="383"></span></a><span class="cm">{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|</span> </span><span id="L-384"><a href="#L-384"><span class="linenos" data-line="384"></span></a><span class="cm"> count=replacement_count|plain=plain_flag}}</span> </span><span id="L-385"><a href="#L-385"><span class="linenos" data-line="385"></span></a> </span><span id="L-386"><a href="#L-386"><span class="linenos" data-line="386"></span></a><span class="cm">Parameters</span> </span><span id="L-387"><a href="#L-387"><span class="linenos" data-line="387"></span></a><span class="cm"> source: The string to search</span> </span><span id="L-388"><a href="#L-388"><span class="linenos" data-line="388"></span></a><span class="cm"> pattern: The string or pattern to find within source</span> </span><span id="L-389"><a href="#L-389"><span class="linenos" data-line="389"></span></a><span class="cm"> replace: The replacement text</span> </span><span id="L-390"><a href="#L-390"><span class="linenos" data-line="390"></span></a><span class="cm"> count: The number of occurences to replace, defaults to all.</span> </span><span id="L-391"><a href="#L-391"><span class="linenos" data-line="391"></span></a><span class="cm"> plain: Boolean flag indicating that pattern should be understood as plain</span> </span><span id="L-392"><a href="#L-392"><span class="linenos" data-line="392"></span></a><span class="cm"> text and not as a Lua style regular expression, defaults to true</span> </span><span id="L-393"><a href="#L-393"><span class="linenos" data-line="393"></span></a><span class="cm">]]</span> </span><span id="L-394"><a href="#L-394"><span class="linenos" data-line="394"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">replace</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-395"><a href="#L-395"><span class="linenos" data-line="395"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'source'</span><span class="p">,</span> <span class="s1">'pattern'</span><span class="p">,</span> <span class="s1">'replace'</span><span class="p">,</span> <span class="s1">'count'</span><span class="p">,</span> <span class="s1">'plain'</span> <span class="p">}</span> <span class="p">)</span> </span><span id="L-396"><a href="#L-396"><span class="linenos" data-line="396"></span></a> <span class="kd">local</span> <span class="n">source_str</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'source'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-397"><a href="#L-397"><span class="linenos" data-line="397"></span></a> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'pattern'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-398"><a href="#L-398"><span class="linenos" data-line="398"></span></a> <span class="kd">local</span> <span class="n">replace</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-399"><a href="#L-399"><span class="linenos" data-line="399"></span></a> <span class="kd">local</span> <span class="n">count</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'count'</span><span class="p">]</span> <span class="p">)</span> </span><span id="L-400"><a href="#L-400"><span class="linenos" data-line="400"></span></a> <span class="kd">local</span> <span class="n">plain</span> <span class="o">=</span> <span class="n">new_args</span><span class="p">[</span><span class="s1">'plain'</span><span class="p">]</span> <span class="ow">or</span> <span class="kc">true</span> </span><span id="L-401"><a href="#L-401"><span class="linenos" data-line="401"></span></a> </span><span id="L-402"><a href="#L-402"><span class="linenos" data-line="402"></span></a> <span class="kr">if</span> <span class="n">source_str</span> <span class="o">==</span> <span class="s1">''</span> <span class="ow">or</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-403"><a href="#L-403"><span class="linenos" data-line="403"></span></a> <span class="kr">return</span> <span class="n">source_str</span> </span><span id="L-404"><a href="#L-404"><span class="linenos" data-line="404"></span></a> <span class="kr">end</span> </span><span id="L-405"><a href="#L-405"><span class="linenos" data-line="405"></span></a> <span class="n">plain</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span> <span class="n">plain</span> <span class="p">)</span> </span><span id="L-406"><a href="#L-406"><span class="linenos" data-line="406"></span></a> </span><span id="L-407"><a href="#L-407"><span class="linenos" data-line="407"></span></a> <span class="kr">if</span> <span class="n">plain</span> <span class="kr">then</span> </span><span id="L-408"><a href="#L-408"><span class="linenos" data-line="408"></span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_escapePattern</span><span class="p">(</span> <span class="n">pattern</span> <span class="p">)</span> </span><span id="L-409"><a href="#L-409"><span class="linenos" data-line="409"></span></a> <span class="n">replace</span> <span class="o">=</span> <span class="nb">string.gsub</span><span class="p">(</span> <span class="n">replace</span><span class="p">,</span> <span class="s2">"%%"</span><span class="p">,</span> <span class="s2">"%%%%"</span> <span class="p">)</span> <span class="c1">--Only need to escape replacement sequences.</span> </span><span id="L-410"><a href="#L-410"><span class="linenos" data-line="410"></span></a> <span class="kr">end</span> </span><span id="L-411"><a href="#L-411"><span class="linenos" data-line="411"></span></a> </span><span id="L-412"><a href="#L-412"><span class="linenos" data-line="412"></span></a> <span class="kd">local</span> <span class="n">result</span> </span><span id="L-413"><a href="#L-413"><span class="linenos" data-line="413"></span></a> </span><span id="L-414"><a href="#L-414"><span class="linenos" data-line="414"></span></a> <span class="kr">if</span> <span class="n">count</span> <span class="o">~=</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-415"><a href="#L-415"><span class="linenos" data-line="415"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span> <span class="n">source_str</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">replace</span><span class="p">,</span> <span class="n">count</span> <span class="p">)</span> </span><span id="L-416"><a href="#L-416"><span class="linenos" data-line="416"></span></a> <span class="kr">else</span> </span><span id="L-417"><a href="#L-417"><span class="linenos" data-line="417"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span> <span class="n">source_str</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">replace</span> <span class="p">)</span> </span><span id="L-418"><a href="#L-418"><span class="linenos" data-line="418"></span></a> <span class="kr">end</span> </span><span id="L-419"><a href="#L-419"><span class="linenos" data-line="419"></span></a> </span><span id="L-420"><a href="#L-420"><span class="linenos" data-line="420"></span></a> <span class="kr">return</span> <span class="n">result</span> </span><span id="L-421"><a href="#L-421"><span class="linenos" data-line="421"></span></a><span class="kr">end</span> </span><span id="L-422"><a href="#L-422"><span class="linenos" data-line="422"></span></a> </span><span id="L-423"><a href="#L-423"><span class="linenos" data-line="423"></span></a><span class="cm">--[[</span> </span><span id="L-424"><a href="#L-424"><span class="linenos" data-line="424"></span></a><span class="cm"> simple function to pipe string.rep to templates.</span> </span><span id="L-425"><a href="#L-425"><span class="linenos" data-line="425"></span></a><span class="cm">]]</span> </span><span id="L-426"><a href="#L-426"><span class="linenos" data-line="426"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">rep</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-427"><a href="#L-427"><span class="linenos" data-line="427"></span></a> <span class="kd">local</span> <span class="n">repetitions</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">)</span> </span><span id="L-428"><a href="#L-428"><span class="linenos" data-line="428"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">repetitions</span> <span class="kr">then</span> </span><span id="L-429"><a href="#L-429"><span class="linenos" data-line="429"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'function rep expects a number as second parameter, received "'</span> <span class="o">..</span> <span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span> <span class="p">)</span> <span class="o">..</span> <span class="s1">'"'</span> <span class="p">)</span> </span><span id="L-430"><a href="#L-430"><span class="linenos" data-line="430"></span></a> <span class="kr">end</span> </span><span id="L-431"><a href="#L-431"><span class="linenos" data-line="431"></span></a> <span class="kr">return</span> <span class="nb">string.rep</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">,</span> <span class="n">repetitions</span> <span class="p">)</span> </span><span id="L-432"><a href="#L-432"><span class="linenos" data-line="432"></span></a><span class="kr">end</span> </span><span id="L-433"><a href="#L-433"><span class="linenos" data-line="433"></span></a> </span><span id="L-434"><a href="#L-434"><span class="linenos" data-line="434"></span></a><span class="cm">--[[</span> </span><span id="L-435"><a href="#L-435"><span class="linenos" data-line="435"></span></a><span class="cm">escapePattern</span> </span><span id="L-436"><a href="#L-436"><span class="linenos" data-line="436"></span></a> </span><span id="L-437"><a href="#L-437"><span class="linenos" data-line="437"></span></a><span class="cm">This function escapes special characters from a Lua string pattern. See [1]</span> </span><span id="L-438"><a href="#L-438"><span class="linenos" data-line="438"></span></a><span class="cm">for details on how patterns work.</span> </span><span id="L-439"><a href="#L-439"><span class="linenos" data-line="439"></span></a> </span><span id="L-440"><a href="#L-440"><span class="linenos" data-line="440"></span></a><span class="cm">[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns</span> </span><span id="L-441"><a href="#L-441"><span class="linenos" data-line="441"></span></a> </span><span id="L-442"><a href="#L-442"><span class="linenos" data-line="442"></span></a><span class="cm">Usage:</span> </span><span id="L-443"><a href="#L-443"><span class="linenos" data-line="443"></span></a><span class="cm">{{#invoke:String|escapePattern|pattern_string}}</span> </span><span id="L-444"><a href="#L-444"><span class="linenos" data-line="444"></span></a> </span><span id="L-445"><a href="#L-445"><span class="linenos" data-line="445"></span></a><span class="cm">Parameters</span> </span><span id="L-446"><a href="#L-446"><span class="linenos" data-line="446"></span></a><span class="cm"> pattern_string: The pattern string to escape.</span> </span><span id="L-447"><a href="#L-447"><span class="linenos" data-line="447"></span></a><span class="cm">]]</span> </span><span id="L-448"><a href="#L-448"><span class="linenos" data-line="448"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">escapePattern</span><span class="p">(</span> <span class="n">frame</span> <span class="p">)</span> </span><span id="L-449"><a href="#L-449"><span class="linenos" data-line="449"></span></a> <span class="kd">local</span> <span class="n">pattern_str</span> <span class="o">=</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-450"><a href="#L-450"><span class="linenos" data-line="450"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">pattern_str</span> <span class="kr">then</span> </span><span id="L-451"><a href="#L-451"><span class="linenos" data-line="451"></span></a> <span class="kr">return</span> <span class="n">str</span><span class="p">.</span><span class="n">_error</span><span class="p">(</span> <span class="s1">'No pattern string specified'</span> <span class="p">)</span> </span><span id="L-452"><a href="#L-452"><span class="linenos" data-line="452"></span></a> <span class="kr">end</span> </span><span id="L-453"><a href="#L-453"><span class="linenos" data-line="453"></span></a> <span class="kd">local</span> <span class="n">result</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_escapePattern</span><span class="p">(</span> <span class="n">pattern_str</span> <span class="p">)</span> </span><span id="L-454"><a href="#L-454"><span class="linenos" data-line="454"></span></a> <span class="kr">return</span> <span class="n">result</span> </span><span id="L-455"><a href="#L-455"><span class="linenos" data-line="455"></span></a><span class="kr">end</span> </span><span id="L-456"><a href="#L-456"><span class="linenos" data-line="456"></span></a> </span><span id="L-457"><a href="#L-457"><span class="linenos" data-line="457"></span></a><span class="cm">--[[</span> </span><span id="L-458"><a href="#L-458"><span class="linenos" data-line="458"></span></a><span class="cm">count</span> </span><span id="L-459"><a href="#L-459"><span class="linenos" data-line="459"></span></a><span class="cm">This function counts the number of occurrences of one string in another.</span> </span><span id="L-460"><a href="#L-460"><span class="linenos" data-line="460"></span></a><span class="cm">]]</span> </span><span id="L-461"><a href="#L-461"><span class="linenos" data-line="461"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">count</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-462"><a href="#L-462"><span class="linenos" data-line="462"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span><span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'source'</span><span class="p">,</span> <span class="s1">'pattern'</span><span class="p">,</span> <span class="s1">'plain'</span><span class="p">})</span> </span><span id="L-463"><a href="#L-463"><span class="linenos" data-line="463"></span></a> <span class="kd">local</span> <span class="n">source</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">source</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-464"><a href="#L-464"><span class="linenos" data-line="464"></span></a> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-465"><a href="#L-465"><span class="linenos" data-line="465"></span></a> <span class="kd">local</span> <span class="n">plain</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">plain</span> <span class="ow">or</span> <span class="kc">true</span><span class="p">)</span> </span><span id="L-466"><a href="#L-466"><span class="linenos" data-line="466"></span></a> <span class="kr">if</span> <span class="n">plain</span> <span class="kr">then</span> </span><span id="L-467"><a href="#L-467"><span class="linenos" data-line="467"></span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_escapePattern</span><span class="p">(</span><span class="n">pattern</span><span class="p">)</span> </span><span id="L-468"><a href="#L-468"><span class="linenos" data-line="468"></span></a> <span class="kr">end</span> </span><span id="L-469"><a href="#L-469"><span class="linenos" data-line="469"></span></a> <span class="kd">local</span> <span class="n">_</span><span class="p">,</span> <span class="n">count</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> </span><span id="L-470"><a href="#L-470"><span class="linenos" data-line="470"></span></a> <span class="kr">return</span> <span class="n">count</span> </span><span id="L-471"><a href="#L-471"><span class="linenos" data-line="471"></span></a><span class="kr">end</span> </span><span id="L-472"><a href="#L-472"><span class="linenos" data-line="472"></span></a> </span><span id="L-473"><a href="#L-473"><span class="linenos" data-line="473"></span></a><span class="cm">--[[</span> </span><span id="L-474"><a href="#L-474"><span class="linenos" data-line="474"></span></a><span class="cm">endswith</span> </span><span id="L-475"><a href="#L-475"><span class="linenos" data-line="475"></span></a><span class="cm">This function determines whether a string ends with another string.</span> </span><span id="L-476"><a href="#L-476"><span class="linenos" data-line="476"></span></a><span class="cm">]]</span> </span><span id="L-477"><a href="#L-477"><span class="linenos" data-line="477"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">endswith</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-478"><a href="#L-478"><span class="linenos" data-line="478"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">_getParameters</span><span class="p">(</span><span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">,</span> <span class="p">{</span><span class="s1">'source'</span><span class="p">,</span> <span class="s1">'pattern'</span><span class="p">})</span> </span><span id="L-479"><a href="#L-479"><span class="linenos" data-line="479"></span></a> <span class="kd">local</span> <span class="n">source</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">source</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-480"><a href="#L-480"><span class="linenos" data-line="480"></span></a> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="ow">or</span> <span class="s1">''</span> </span><span id="L-481"><a href="#L-481"><span class="linenos" data-line="481"></span></a> <span class="kr">if</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-482"><a href="#L-482"><span class="linenos" data-line="482"></span></a> <span class="c1">-- All strings end with the empty string.</span> </span><span id="L-483"><a href="#L-483"><span class="linenos" data-line="483"></span></a> <span class="kr">return</span> <span class="s2">"yes"</span> </span><span id="L-484"><a href="#L-484"><span class="linenos" data-line="484"></span></a> <span class="kr">end</span> </span><span id="L-485"><a href="#L-485"><span class="linenos" data-line="485"></span></a> <span class="kr">if</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="o">-</span><span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">len</span><span class="p">(</span><span class="n">pattern</span><span class="p">),</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="n">pattern</span> <span class="kr">then</span> </span><span id="L-486"><a href="#L-486"><span class="linenos" data-line="486"></span></a> <span class="kr">return</span> <span class="s2">"yes"</span> </span><span id="L-487"><a href="#L-487"><span class="linenos" data-line="487"></span></a> <span class="kr">else</span> </span><span id="L-488"><a href="#L-488"><span class="linenos" data-line="488"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-489"><a href="#L-489"><span class="linenos" data-line="489"></span></a> <span class="kr">end</span> </span><span id="L-490"><a href="#L-490"><span class="linenos" data-line="490"></span></a><span class="kr">end</span> </span><span id="L-491"><a href="#L-491"><span class="linenos" data-line="491"></span></a> </span><span id="L-492"><a href="#L-492"><span class="linenos" data-line="492"></span></a><span class="cm">--[[</span> </span><span id="L-493"><a href="#L-493"><span class="linenos" data-line="493"></span></a><span class="cm">join</span> </span><span id="L-494"><a href="#L-494"><span class="linenos" data-line="494"></span></a> </span><span id="L-495"><a href="#L-495"><span class="linenos" data-line="495"></span></a><span class="cm">Join all non empty arguments together; the first argument is the separator.</span> </span><span id="L-496"><a href="#L-496"><span class="linenos" data-line="496"></span></a><span class="cm">Usage:</span> </span><span id="L-497"><a href="#L-497"><span class="linenos" data-line="497"></span></a><span class="cm">{{#invoke:String|join|sep|one|two|three}}</span> </span><span id="L-498"><a href="#L-498"><span class="linenos" data-line="498"></span></a><span class="cm">]]</span> </span><span id="L-499"><a href="#L-499"><span class="linenos" data-line="499"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-500"><a href="#L-500"><span class="linenos" data-line="500"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-501"><a href="#L-501"><span class="linenos" data-line="501"></span></a> <span class="kd">local</span> <span class="n">sep</span> </span><span id="L-502"><a href="#L-502"><span class="linenos" data-line="502"></span></a> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span> <span class="p">)</span> <span class="kr">do</span> </span><span id="L-503"><a href="#L-503"><span class="linenos" data-line="503"></span></a> <span class="kr">if</span> <span class="n">sep</span> <span class="kr">then</span> </span><span id="L-504"><a href="#L-504"><span class="linenos" data-line="504"></span></a> <span class="kr">if</span> <span class="n">v</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-505"><a href="#L-505"><span class="linenos" data-line="505"></span></a> <span class="nb">table.insert</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> </span><span id="L-506"><a href="#L-506"><span class="linenos" data-line="506"></span></a> <span class="kr">end</span> </span><span id="L-507"><a href="#L-507"><span class="linenos" data-line="507"></span></a> <span class="kr">else</span> </span><span id="L-508"><a href="#L-508"><span class="linenos" data-line="508"></span></a> <span class="n">sep</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-509"><a href="#L-509"><span class="linenos" data-line="509"></span></a> <span class="kr">end</span> </span><span id="L-510"><a href="#L-510"><span class="linenos" data-line="510"></span></a> <span class="kr">end</span> </span><span id="L-511"><a href="#L-511"><span class="linenos" data-line="511"></span></a> <span class="kr">return</span> <span class="nb">table.concat</span><span class="p">(</span> <span class="n">args</span><span class="p">,</span> <span class="n">sep</span> <span class="ow">or</span> <span class="s1">''</span> <span class="p">)</span> </span><span id="L-512"><a href="#L-512"><span class="linenos" data-line="512"></span></a><span class="kr">end</span> </span><span id="L-513"><a href="#L-513"><span class="linenos" data-line="513"></span></a> </span><span id="L-514"><a href="#L-514"><span class="linenos" data-line="514"></span></a><span class="cm">--[[</span> </span><span id="L-515"><a href="#L-515"><span class="linenos" data-line="515"></span></a><span class="cm">Helper function that populates the argument list given that user may need to use a mix of</span> </span><span id="L-516"><a href="#L-516"><span class="linenos" data-line="516"></span></a><span class="cm">named and unnamed parameters. This is relevant because named parameters are not</span> </span><span id="L-517"><a href="#L-517"><span class="linenos" data-line="517"></span></a><span class="cm">identical to unnamed parameters due to string trimming, and when dealing with strings</span> </span><span id="L-518"><a href="#L-518"><span class="linenos" data-line="518"></span></a><span class="cm">we sometimes want to either preserve or remove that whitespace depending on the application.</span> </span><span id="L-519"><a href="#L-519"><span class="linenos" data-line="519"></span></a><span class="cm">]]</span> </span><span id="L-520"><a href="#L-520"><span class="linenos" data-line="520"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">_getParameters</span><span class="p">(</span> <span class="n">frame_args</span><span class="p">,</span> <span class="n">arg_list</span> <span class="p">)</span> </span><span id="L-521"><a href="#L-521"><span class="linenos" data-line="521"></span></a> <span class="kd">local</span> <span class="n">new_args</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-522"><a href="#L-522"><span class="linenos" data-line="522"></span></a> <span class="kd">local</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-523"><a href="#L-523"><span class="linenos" data-line="523"></span></a> <span class="kd">local</span> <span class="n">value</span> </span><span id="L-524"><a href="#L-524"><span class="linenos" data-line="524"></span></a> </span><span id="L-525"><a href="#L-525"><span class="linenos" data-line="525"></span></a> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span> <span class="n">arg_list</span> <span class="p">)</span> <span class="kr">do</span> </span><span id="L-526"><a href="#L-526"><span class="linenos" data-line="526"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">frame_args</span><span class="p">[</span><span class="n">arg</span><span class="p">]</span> </span><span id="L-527"><a href="#L-527"><span class="linenos" data-line="527"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-528"><a href="#L-528"><span class="linenos" data-line="528"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">frame_args</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> </span><span id="L-529"><a href="#L-529"><span class="linenos" data-line="529"></span></a> <span class="n">index</span> <span class="o">=</span> <span class="n">index</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-530"><a href="#L-530"><span class="linenos" data-line="530"></span></a> <span class="kr">end</span> </span><span id="L-531"><a href="#L-531"><span class="linenos" data-line="531"></span></a> <span class="n">new_args</span><span class="p">[</span><span class="n">arg</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> </span><span id="L-532"><a href="#L-532"><span class="linenos" data-line="532"></span></a> <span class="kr">end</span> </span><span id="L-533"><a href="#L-533"><span class="linenos" data-line="533"></span></a> </span><span id="L-534"><a href="#L-534"><span class="linenos" data-line="534"></span></a> <span class="kr">return</span> <span class="n">new_args</span> </span><span id="L-535"><a href="#L-535"><span class="linenos" data-line="535"></span></a><span class="kr">end</span> </span><span id="L-536"><a href="#L-536"><span class="linenos" data-line="536"></span></a> </span><span id="L-537"><a href="#L-537"><span class="linenos" data-line="537"></span></a><span class="cm">--[[</span> </span><span id="L-538"><a href="#L-538"><span class="linenos" data-line="538"></span></a><span class="cm">Helper function to handle error messages.</span> </span><span id="L-539"><a href="#L-539"><span class="linenos" data-line="539"></span></a><span class="cm">]]</span> </span><span id="L-540"><a href="#L-540"><span class="linenos" data-line="540"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">_error</span><span class="p">(</span> <span class="n">error_str</span> <span class="p">)</span> </span><span id="L-541"><a href="#L-541"><span class="linenos" data-line="541"></span></a> <span class="kd">local</span> <span class="n">frame</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">()</span> </span><span id="L-542"><a href="#L-542"><span class="linenos" data-line="542"></span></a> <span class="kd">local</span> <span class="n">error_category</span> <span class="o">=</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">error_category</span> <span class="ow">or</span> <span class="s1">'Errors reported by Module String'</span> </span><span id="L-543"><a href="#L-543"><span class="linenos" data-line="543"></span></a> <span class="kd">local</span> <span class="n">ignore_errors</span> <span class="o">=</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">ignore_errors</span> <span class="ow">or</span> <span class="kc">false</span> </span><span id="L-544"><a href="#L-544"><span class="linenos" data-line="544"></span></a> <span class="kd">local</span> <span class="n">no_category</span> <span class="o">=</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">no_category</span> <span class="ow">or</span> <span class="kc">false</span> </span><span id="L-545"><a href="#L-545"><span class="linenos" data-line="545"></span></a> </span><span id="L-546"><a href="#L-546"><span class="linenos" data-line="546"></span></a> <span class="kr">if</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span><span class="n">ignore_errors</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-547"><a href="#L-547"><span class="linenos" data-line="547"></span></a> <span class="kr">return</span> <span class="s1">''</span> </span><span id="L-548"><a href="#L-548"><span class="linenos" data-line="548"></span></a> <span class="kr">end</span> </span><span id="L-549"><a href="#L-549"><span class="linenos" data-line="549"></span></a> </span><span id="L-550"><a href="#L-550"><span class="linenos" data-line="550"></span></a> <span class="kd">local</span> <span class="n">error_str</span> <span class="o">=</span> <span class="s1">'<strong class="error">String Module Error: '</span> <span class="o">..</span> <span class="n">error_str</span> <span class="o">..</span> <span class="s1">'</strong>'</span> </span><span id="L-551"><a href="#L-551"><span class="linenos" data-line="551"></span></a> <span class="kr">if</span> <span class="n">error_category</span> <span class="o">~=</span> <span class="s1">''</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">str</span><span class="p">.</span><span class="n">_getBoolean</span><span class="p">(</span> <span class="n">no_category</span> <span class="p">)</span> <span class="kr">then</span> </span><span id="L-552"><a href="#L-552"><span class="linenos" data-line="552"></span></a> <span class="n">error_str</span> <span class="o">=</span> <span class="s1">'[[Category:'</span> <span class="o">..</span> <span class="n">error_category</span> <span class="o">..</span> <span class="s1">']]'</span> <span class="o">..</span> <span class="n">error_str</span> </span><span id="L-553"><a href="#L-553"><span class="linenos" data-line="553"></span></a> <span class="kr">end</span> </span><span id="L-554"><a href="#L-554"><span class="linenos" data-line="554"></span></a> </span><span id="L-555"><a href="#L-555"><span class="linenos" data-line="555"></span></a> <span class="kr">return</span> <span class="n">error_str</span> </span><span id="L-556"><a href="#L-556"><span class="linenos" data-line="556"></span></a><span class="kr">end</span> </span><span id="L-557"><a href="#L-557"><span class="linenos" data-line="557"></span></a> </span><span id="L-558"><a href="#L-558"><span class="linenos" data-line="558"></span></a><span class="cm">--[[</span> </span><span id="L-559"><a href="#L-559"><span class="linenos" data-line="559"></span></a><span class="cm">Helper Function to interpret boolean strings</span> </span><span id="L-560"><a href="#L-560"><span class="linenos" data-line="560"></span></a><span class="cm">]]</span> </span><span id="L-561"><a href="#L-561"><span class="linenos" data-line="561"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">_getBoolean</span><span class="p">(</span> <span class="n">boolean_str</span> <span class="p">)</span> </span><span id="L-562"><a href="#L-562"><span class="linenos" data-line="562"></span></a> <span class="kd">local</span> <span class="n">boolean_value</span> </span><span id="L-563"><a href="#L-563"><span class="linenos" data-line="563"></span></a> </span><span id="L-564"><a href="#L-564"><span class="linenos" data-line="564"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span> <span class="n">boolean_str</span> <span class="p">)</span> <span class="o">==</span> <span class="s1">'string'</span> <span class="kr">then</span> </span><span id="L-565"><a href="#L-565"><span class="linenos" data-line="565"></span></a> <span class="n">boolean_str</span> <span class="o">=</span> <span class="n">boolean_str</span><span class="p">:</span><span class="n">lower</span><span class="p">()</span> </span><span id="L-566"><a href="#L-566"><span class="linenos" data-line="566"></span></a> <span class="kr">if</span> <span class="n">boolean_str</span> <span class="o">==</span> <span class="s1">'false'</span> <span class="ow">or</span> <span class="n">boolean_str</span> <span class="o">==</span> <span class="s1">'no'</span> <span class="ow">or</span> <span class="n">boolean_str</span> <span class="o">==</span> <span class="s1">'0'</span> </span><span id="L-567"><a href="#L-567"><span class="linenos" data-line="567"></span></a> <span class="ow">or</span> <span class="n">boolean_str</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-568"><a href="#L-568"><span class="linenos" data-line="568"></span></a> <span class="n">boolean_value</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-569"><a href="#L-569"><span class="linenos" data-line="569"></span></a> <span class="kr">else</span> </span><span id="L-570"><a href="#L-570"><span class="linenos" data-line="570"></span></a> <span class="n">boolean_value</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-571"><a href="#L-571"><span class="linenos" data-line="571"></span></a> <span class="kr">end</span> </span><span id="L-572"><a href="#L-572"><span class="linenos" data-line="572"></span></a> <span class="kr">elseif</span> <span class="nb">type</span><span class="p">(</span> <span class="n">boolean_str</span> <span class="p">)</span> <span class="o">==</span> <span class="s1">'boolean'</span> <span class="kr">then</span> </span><span id="L-573"><a href="#L-573"><span class="linenos" data-line="573"></span></a> <span class="n">boolean_value</span> <span class="o">=</span> <span class="n">boolean_str</span> </span><span id="L-574"><a href="#L-574"><span class="linenos" data-line="574"></span></a> <span class="kr">else</span> </span><span id="L-575"><a href="#L-575"><span class="linenos" data-line="575"></span></a> <span class="nb">error</span><span class="p">(</span> <span class="s1">'No boolean value found'</span> <span class="p">)</span> </span><span id="L-576"><a href="#L-576"><span class="linenos" data-line="576"></span></a> <span class="kr">end</span> </span><span id="L-577"><a href="#L-577"><span class="linenos" data-line="577"></span></a> <span class="kr">return</span> <span class="n">boolean_value</span> </span><span id="L-578"><a href="#L-578"><span class="linenos" data-line="578"></span></a><span class="kr">end</span> </span><span id="L-579"><a href="#L-579"><span class="linenos" data-line="579"></span></a> </span><span id="L-580"><a href="#L-580"><span class="linenos" data-line="580"></span></a><span class="cm">--[[</span> </span><span id="L-581"><a href="#L-581"><span class="linenos" data-line="581"></span></a><span class="cm">Helper function that escapes all pattern characters so that they will be treated</span> </span><span id="L-582"><a href="#L-582"><span class="linenos" data-line="582"></span></a><span class="cm">as plain text.</span> </span><span id="L-583"><a href="#L-583"><span class="linenos" data-line="583"></span></a><span class="cm">]]</span> </span><span id="L-584"><a href="#L-584"><span class="linenos" data-line="584"></span></a><span class="kr">function</span> <span class="nc">str</span><span class="p">.</span><span class="nf">_escapePattern</span><span class="p">(</span> <span class="n">pattern_str</span> <span class="p">)</span> </span><span id="L-585"><a href="#L-585"><span class="linenos" data-line="585"></span></a> <span class="kr">return</span> <span class="p">(</span> <span class="nb">string.gsub</span><span class="p">(</span> <span class="n">pattern_str</span><span class="p">,</span> <span class="s2">"[%(%)%.%%%+%-%*%?%[%^%$%]]"</span><span class="p">,</span> <span class="s2">"%%%0"</span> <span class="p">)</span> <span class="p">)</span> </span><span id="L-586"><a href="#L-586"><span class="linenos" data-line="586"></span></a><span class="kr">end</span> </span><span id="L-587"><a href="#L-587"><span class="linenos" data-line="587"></span></a> </span><span id="L-588"><a href="#L-588"><span class="linenos" data-line="588"></span></a><span class="kr">return</span> <span class="n">str</span> </span></pre></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐dhbcv Cached time: 20241123153359 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.434 seconds Real time usage: 0.544 seconds Preprocessor visited node count: 2427/1000000 Post‐expand include size: 196236/2097152 bytes Template argument size: 3722/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 5/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 18344/5000000 bytes Lua time usage: 0.241/10.000 seconds Lua memory usage: 3282422/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 385.929 1 -total 100.00% 385.929 1 Module:String/doc 46.06% 177.760 1 Template:String_handling_templates 23.05% 88.971 15 Template:Aligned_table 17.19% 66.346 1 Template:Used_in_system 5.23% 20.177 1 Template:For 4.55% 17.579 49 Template:Tl 3.48% 13.411 1 Template:Pf 3.39% 13.089 1 Template:Div_col 2.69% 10.372 1 Template:Ml --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Module:String&oldid=1243840019">https://en.wikipedia.org/w/index.php?title=Module:String&oldid=1243840019</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Modules_subject_to_page_protection" title="Category:Modules subject to page protection">Modules subject to page protection</a></li><li><a href="/wiki/Category:Modules_that_add_a_tracking_category" title="Category:Modules that add a tracking category">Modules that add a tracking category</a></li><li><a href="/wiki/Category:Modules_that_manipulate_strings" title="Category:Modules that manipulate strings">Modules that manipulate strings</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden category: <ul><li><a href="/wiki/Category:Wikipedia_fully_protected_modules" title="Category:Wikipedia fully protected modules">Wikipedia fully protected modules</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 3 September 2024, at 18:35<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Module:String&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-dhbcv","wgBackendResponseTime":743,"wgPageParseReport":{"limitreport":{"cputime":"0.434","walltime":"0.544","ppvisitednodes":{"value":2427,"limit":1000000},"postexpandincludesize":{"value":196236,"limit":2097152},"templateargumentsize":{"value":3722,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":5,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":18344,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 385.929 1 -total","100.00% 385.929 1 Module:String/doc"," 46.06% 177.760 1 Template:String_handling_templates"," 23.05% 88.971 15 Template:Aligned_table"," 17.19% 66.346 1 Template:Used_in_system"," 5.23% 20.177 1 Template:For"," 4.55% 17.579 49 Template:Tl"," 3.48% 13.411 1 Template:Pf"," 3.39% 13.089 1 Template:Div_col"," 2.69% 10.372 1 Template:Ml"]},"scribunto":{"limitreport-timeusage":{"value":"0.241","limit":"10.000"},"limitreport-memusage":{"value":3282422,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-dhbcv","timestamp":"20241123153359","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>