it-swarm.com.de

Wie kann ein Teil eines Strings vor einem bestimmten Zeichen zurückgegeben werden?

Wenn Sie sich die jsfiddle from Frage ansehen ,

var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);

Dies gibt alle Zeichen nach dem : zurück. Wie kann ich dies anpassen, um alle Zeichen vor dem : zurückzugeben.

etwas wie var str_sub = str.substr(str.lastIndexOf(":")+1); aber das funktioniert nicht.

32
Smudger

Sie machen schon einen Job ... vielleicht versuchen Sie, den String vorher den Doppelpunkt zu bekommen? (Sie sollten Ihre Frage wirklich bearbeiten) Dann würde der Code folgendermaßen aussehen: 

str.substring(0, str.indexOf(":")); 

Dabei steht 'str' für die Variable mit Ihrer Zeichenfolge.

Hier klicken für JSFiddle-Beispiel

Javascript

var input_string = document.getElementById('my-input').innerText;
var output_element = document.getElementById('my-output');

var left_text = input_string.substring(0, input_string.indexOf(":"));

output_element.innerText = left_text;

Html

<p>
  <h5>Input:</h5>
  <strong id="my-input">Left Text:Right Text</strong>
  <h5>Output:</h5>
  <strong id="my-output">XXX</strong>
</p>

CSS

body { font-family: Calibri, sans-serif; color:#555; }
h5 { margin-bottom: 0.8em; }
strong {
  width:90%;
  padding: 0.5em 1em;
  background-color: cyan;
}
#my-output { background-color: gold; }
50
Hexodus

Eine andere Methode könnte darin bestehen, die Zeichenfolge durch ":" zu teilen und dann das Ende abzubrechen. var newString = string.split(":").pop();

27
A. James McHale

Beachten Sie, dass das erste Argument von subString 0 ist, während das zweite Argument eins ist.

Beispiel:

String str= "0123456";
String sbstr= str.substring(0,5);

Ausgabe ist sbstr= 01234 und nicht sbstr = 012345

4
swapnil_nerd

Im Allgemeinen ist eine Funktion, die eine Zeichenfolge nach der Teilzeichenfolge zurückgibt 

function getStringAfterSubstring(parentString, substring) {
    return parentString.substring(parentString.indexOf(substring) + substring.length)
}

function getStringBeforeSubstring(parentString, substring) {
    return parentString.substring(0, parentString.indexOf(substring))
}
console.log(getStringAfterSubstring('abcxyz123uvw', '123'))
console.log(getStringBeforeSubstring('abcxyz123uvw', '123'))

0
best wishes