schneidet die Zeichenfolge ab, entfernt aber die Mitte der Zeichenfolge anstelle des Endes

8

Ich habe diese Funktion entwickelt, die einen gegebenen String entweder auf die angegebene Anzahl von Wörtern oder auf die angegebene Anzahl von Zeichen verkürzt, je nachdem, was kürzer ist. Dann, nachdem alles nach der Anzahl der Zeichen oder Wörter abgeschnitten wurde, wird ein '...' an die Zeichenkette angehängt.

Wie kann ich Zeichen / Wörter aus der Mitte der Zeichenfolge entfernen und sie durch '...' ersetzen, anstatt Zeichen / Wörter am Ende durch '...' zu ersetzen?

Hier ist mein Code:

%Vor%

Wenn zum Beispiel truncate('the quick brown fox jumps over the lazy dog', 8, 16); aufgerufen wird, sind 16 Zeichen kürzer, so dass die Kürzung erfolgt. Also, 'Fuchs springt über den faulen Hund' wird entfernt und '...' wird angehängt.

Aber stattdessen, wie kann ich die Hälfte des Zeichenlimits vom Anfang des Strings haben und die Hälfte vom Ende des Strings und was wird in der Mitte durch '...' ersetzt? Also, die Saite, auf die ich in diesem Fall zurückkommen möchte, wäre: "der Quatsch ... fauler Hund".

    
irfan mir 01.06.2013, 05:04
quelle

3 Antworten

21
%Vor%

$ result ist jetzt:

%Vor%     
Ziarno 01.06.2013, 05:12
quelle
1

Dies ändert nichts an der Eingabe, die kürzer als $maxChars ist, und berücksichtigt die Länge der Ersetzung ... :

%Vor%     
crishoj 05.08.2016 12:36
quelle
0

Hier ist, was ich am Ende benutzt habe:

%Vor%

Für meinen Anwendungsfall enthielt die rechte Seite der Zeichenfolge mehr nützliche Informationen, so dass diese Methode darauf ausgerichtet ist, Zeichen aus der linken Hälfte zu entnehmen.

    
adean 22.05.2016 18:11
quelle

Tags und Links