Modulo Lua per la manipolazione di stringhe.
La maggior parte delle funzioni di questo modulo possono essere invocate con parametri con nome, senza nome o con un misto di entrambi. Il software di MediaWiki, quando vengono usati parametri con nome, rimuoverà ogni spazio iniziale o finale dal parametro. A seconda dell'uso che si vuole fare della funzione può essere vantaggioso conservare oppure rimuovere questi spazi.
Questo modulo è pensato per essere richiamato da template, non direttamente da una voce. Il modulo è richiamabile anche da un altro modulo Lua, ma in questo caso è meglio usare direttamente le funzioni Lua di manipolazione delle stringhe:
Per richiamare il modulo da un template usare la sintassi:
{{{{{|safesubst:}}}#invoke:String|nome della funzione|parametro 1|parametro 2|...|parametro n|}}
. Per esempio d'uso vedi il template w:template:Str len su Wikipedia
Alcune funzioni possono dare un messaggio di errore o impostare una categoria di errori, la generazione di questo messaggio e/o la creazione dei questa categoria possono essere controllate dalle seguenti opzioni.
Questa funzione restituisce la lunghezza di una stringa.
{{#invoke:String|len|stringa}}
O
{{#invoke:String|len|s= stringa }}
Se invocata usando parametri nominati, Mediawiki rimuoverà automaticamente ogni spazio iniziale o finale dalla stringa.
Questa funzione restituisce la sottostringa di una stringa bersaglio, come indicato dagli indici
{{#invoke:String|sub|stringa_bersaglio|indice_iniziale|indice_finale}}
O
{{#invoke:String|sub|s= stringa_bersaglio |i= indice_iniziale |j= indice_finale }}
I caratteri della stringa sono numerati a partire da 1. Se i o j hanno un valore negativo allora contano la posizione contando dalla fine della stringa, -1 è l'ultimo carattere della stringa, -2 il penultimo, ecc...
Se le posizioni sono al di fuori degli estremi della stringa viene restituito un messaggio di errore.
Questa funzione restituisce una sottostringa della stringa bersaglio corrispondente a un pattern specificato.
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
O
{{#invoke:String|match|s= source_string |pattern= pattern_string |start= start_index
|match= match_number |plain= plain_flag |nomatch= nomatch_output }}
Se richiamata usando parametri nominati Mediawiki rimuoverà automaticamente tutti gli spazi iniziali e finali. In alcune circostanze questo può essere il comportamento desiderato, in altre si potrebbe volerli conservare.
Se match o start sono al di fuori degli estremi della stringa s, allora la funzione restituisce un errore. Viene generato un errore anche se il non vengono trovate corrispondenze. Per sopprimere gli errori si può aggiungere il parametro ignore_errors=true, in questo caso in caso di errore verrà restituita una stringa vuota.
Questa funzione restituisce il carattere della stringa in posizione pos.
{{#invoke:String|pos|stringa_bersaglio|indice}}
O
{{#invoke:String|pos|target= stringa_bersaglio |pos= indice }}
Se richiamata usando parametri nominati Mediawiki rimuoverà automaticamente tutti gli spazi iniziali e finali. In alcune circostanze questo può essere il comportamento desiderato, in altre si potrebbe volerli conservare.
I caratteri della stringa sono numerati a partire da 1. Se pos è un valore negativo allora conta la posizione partendo dalla fine della stringa, -1 è l'ultimo carattere della stringa, -2 il penultimo, ecc...
Se la posizione richiesta è 0 o al di fuori degli estremi della stringa viene restituito un errore.
Questa funzione è fornita per motivi di compatibilità con i vecchi template, ma SI RACCOMANDA di non utilizzarla in nuovi template. Nello sviluppo di nuovo codice si raccomanda di usare la funzione find.
Restituisce la posizione nella stringa source del primo carattere in cui è stata trovata la stringa target. I caratteri della stringa sono numerati a partire da 1. La funzione restituisce -1 se la stringa target non è contenuta in source.
Nota importante: Per compatibilità con il vecchio template, se la stringa target è vuota o manca, la funzione restituisce il valore "1"
Questa funzione permette di cercare una stringa bersaglio o un pattern Lua all'interno di un'altra stringa.
{{#invoke:String|find|stringa_sorgente|stringa_bersaglio|indice_iniziale|plain_flag}}
O
{{#invoke:String|find|source= stringa_sorgente |target= stringa_bersaglio |start= indice_iniziale |plain= plain_flag }}
Se richiamata usando parametri nominati Mediawiki rimuoverà automaticamente tutti gli spazi iniziali e finali. In alcune circostanze questo può essere il comportamento desiderato, in altre si potrebbe volerli conservare.
Questa funzione restituisce la prima posizione maggiore o uguale a start a partire dalla quale target si trova in source. I caratteri della stringa sono numerati a partire da 1. Se target non viene trovato dà 0. Se source o target sono mancanti o vuoti dà 0.
Questa funzione dovrebbe essere sicura per stringhe UTF-8.
Questa funzione permette di rimpiazzare una stringa o pattern bersaglio con un'altra stringa.
{{#invoke:String|replace|stringa_sorgente|stringa_pattern|nuova_stringa|numero_di_sostituzioni|plain_flag}}
O
{{#invoke:String|replace|source= stringa_sorgente |pattern= stringa_pattern |replace= nuova_stringa |
count= numero_di_sostituzioni |plain= plain_flag }}
Formatta una o più liste di valori in una singola stringa
{{#invoke:String|arraytostring|par1|formato|separatore|congiunzione}}
{{#invoke:string|arraytostring|par1=var#|separatore= |congiunzione= e }}
{{#invoke:string|arraytostring|par1=disegnatore #|par2=disegnatore # nota|msg = $1 <small>$2</small>|lista=infobox}}
{{#invoke:String|arraytostring|par1=#|msg=''$1''|separatore=<nowiki>|</nowiki>|Nmin=2}}
Questa funzione restituisce la stringa privata degli eventuali segni diacritici sulle lettere dell'alfabeto latino. Trasforma ad esempio "Çịàö" in "Ciao", preferibile ad esempio per gli ordinamenti alfabetici.
{{#invoke:String|collate|stringa}}
Questa funzione accetta una stringa codificata con il sistema a percentuali usato negli URL e restituisce la stringa decodificata. Fa quindi l'opposto della funzione di sistema urlencode. Trasforma ad esempio "Come%20va%3F" in "Come va?".
{{#invoke:String|decode|stringa}}
Questa funzione accetta una stringa che corrisponde a un titolo di opera e restituisce la stringa adattata all'ordinamento alfabetico. Trasforma ad esempio "La pietà" in "Pieta, La". Non funziona sempre, non potendo capire il significato delle parole, ma risolve automaticamente la maggior parte dei casi.
{{#invoke:String|titolo_alfa|titolo}}
Unit test per questo modulo sono disponibili a Modulo:String/test, per la loro esecuzione visitare Discussioni_modulo:String/test.
Diverse funzioni fanno uso di pattern Lua, questi sono una forma di espressione regolare, per maggiori informazioni sulla loro sintassi vedi: