Split die Zeichenfolge in der Hälfte Von Word
Ich bin in einer situation, wo ich gerne einen string und spaltete es in der Hälfte, unter Beachtung Worten, so dass this string here
nicht aufgeteilt in this str
ing here
, sondern es würde aufgeteilt werden in this string
here
.
Ich Zahl ab Schritt wäre, zu split die Zeichenfolge in ein array basiert auf Leerzeichen, dann berechnen Sie die Länge der Basis dieser Stücke, aber meine versuche, mehr Streicher am Ende wird aufgeteilt falsch.
- Zeigen Sie uns Ihre versuche, bitte!
- Habe ich eigentlich schon geschrieben, diese Frage nach, herauszufinden, wie es zu tun. Meine ersten versuche' bugs hatte zu tun mit dem nicht hinzufügen die entfernten Bereiche bei der Kontrolle der word-array. Mein Arbeits-Antwort ist weiter unten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Look für den ersten Platz vor und nach der Mitte, und wählen Sie die am nächsten an der Mitte.
Beispiel:
Demo: http://jsfiddle.net/7RNBu/
(Dieser code setzt Voraus, daß es tatsächlich sind Räume, die auf beiden Seiten von der Mitte. Sie würde auch hinzufügen, überprüft
before
undafter
wird-1
.)Edit:
Die Prüfung, von der ich Sprach, in die Knoten richtig gemacht werden wie diese:
Hier ist ein Turnschuh, wo Sie können den text Bearbeiten und das Ergebnis sehen Sie sofort: http://jsfiddle.net/Guffa/7RNBu/11/
Ich wollte das als Kommentar, aber nicht genügend rep-Punkte. Die top-Lösung jetzt fehl ziemlich leicht, weil Sie nicht das Häkchen für "-1", wenn mithilfe der indexOf-Methode. Sehen Sie diese Geige:
http://jsfiddle.net/7RNBu/7/
s1
.Ich dachte zuerst ich hatte ein off-by-one-Fehler, aber ich schließlich arbeitete Sie durch. Hier ist ein funktionierendes Beispiel.
Nun brechen die verwendete Logik:
Wenn jemand sieht Löcher in meiner Logik, lassen Sie mich wissen! Ich bin mir ziemlich sicher, das funktioniert in den meisten Fällen ist jedoch.
Wenn Sie möchten, dass die zweite Zeichenkette länger als die erste (dh die Linie, Pause, vor, anstatt nach dem Wort in der Mitte), dann nicht +1 zu wordFlag.
Könnte Sie auch interessieren neue Zeilen, Tabulatoren sowie Leerzeichen, so würde ich einen regex verwenden, wie diese:
Sehen diese Geige: http://jsfiddle.net/nS6Bj/5/
Dies wird teilen Sie Ihre saite, basierend auf der word-Zählung (nicht die Anzahl der Zeichen, also die genaue Länge von jeder Hälfte könnte ganz anders sein, je nach der Platzierung von lange & kurze Wörter).
http://jsfiddle.net/daCrosby/7RNBu/2/