Vorlage Diskussion:IndexOf

Aus Perrypedia
Zur Navigation springen Zur Suche springen

Version 1.0

IndexOf liefert die erste Position eines Zeichens in eine Zeichenkette und -1 falls das Zeichen nicht enthalten ist. Gesucht wird entweder ab dem ersten Zeichen (Position 0), oder falls angegeben ab einem späteren Zeichen.
Parameter:

  • 1. Parameter: Text der durchsucht werden soll.
  • 2. Parameter (optional): Zeichen, das gesucht werden soll. Falls keines angegeben wird, wird nach dem Leerzeichen gesucht.
  • 3. Parameter (optional): Position, ab der gesucht werden soll. Falls keine angegeben wurde, wird ab Position 0 gesucht.

Motivation für das Anlegen der Vorlage war eine noch ausstehende Erweiterung der Vorlage:SortKey, in deren Rahmen doppelte Leerzeichen entfernt werden müssen. Hierzu muss unter anderem die Position bestimmt werden. Die ParserFunction »pos« macht dabei Probleme: Wenn das Zeichen nicht enthalten ist erhält man keine Zahl als Ergebnis, was die weitere Verarbeitung erschwert (wäre jeweils ein extra if notwendig). Daher und da die Sache auch bei weiteren Vorlagen nützlich sein mag, wurde die Funktionalität in der Vorlage gekappselt. Beispiele:

Beispiel Ergebnis Erwartetes Ergebnis
{{IndexOf|abcdabcd}} -1 -1, es wird nach Leerzeichen gesucht, es sind aber keine enthalten.
{{IndexOf|abcdabcd|a}} 0 0, da die Zeichen von 0 aus gezählt werden
{{IndexOf|abcdabcd|b}} 1 1, da die Zeichen von 0 aus gezählt werden
{{IndexOf|abcdabcd|B}} -1 -1, da der Großbuchstabe nicht enthalten ist
{{IndexOf|abcdabcd|c}} 2 2, da die Zeichen von 0 aus gezählt werden
{{IndexOf|abcdabcd|c|2}} 2 2, es wird von der zweiten Position aus gesucht, also vom ersten c weg, Positionsangabe bezieht sich aber immer auf Anfang der gesamten Zeichenketten
{{IndexOf|abcdabcd|c|3}} 6 6, es wird von der dritten Position aus gesucht, also vom ersten d weg, Positionsangabe bezieht sich aber immer auf Anfang der gesamten Zeichenketten
{{IndexOf|ab cd ab cd}} 2 2, da nach Leerzeichen gesucht wird, wenn kein zweiter Parameter angegeben wurde.
{{IndexOf|ab cd ab cd| }} 2 2, wie oben, das Leerzeichen darf aber auch explizt mit angegeben werden.
{{IndexOf|ab cd ab cd| |3}} 5 5, wie oben, die ersten 3 Zeichen werden bei der Suche aber ignoriert.

Eventuell für Leute interessant, die die Vorlage weiterentwicklen wollen: Die Erstellung erfolgte auf der Seite Benutzer:NAN/Vorlage IndexOf, über die Versionsgeschichte hat man dort z.B. auch Zugriff auf Versionen, in denen das eine oder andere noch nicht geklappt hat. --NAN (Diskussion|Beiträge) 09:32, 13. Mai 2012 (CEST)