Подтвердить что ты не робот

Как вернуть часть строки перед определенным символом?

Если вы посмотрите jsfiddle из question,

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

Это возвращает все символы после :, как я могу настроить это, чтобы вернуть все символы перед :

что-то вроде var str_sub = str.substr(str.lastIndexOf(":")+1);, но это не сработает.

4b9b3361

Ответ 1

Ты уже скриптишь работу... может быть, ты попытаешься получить строку до двойной двоеточия? (вы действительно должны отредактировать свой вопрос). Тогда код будет выглядеть следующим образом:

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

Где 'str' представляет переменную с вашей строкой внутри.

Нажмите здесь для примера JSFiddle

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; }

Ответ 2

Другим методом может быть разделение строки на ":", а затем выключение конца.  var newString = string.split(":").pop();

Ответ 3

И обратите внимание, что первый аргумент subString равен 0, а второй - одному.

Пример:

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

Выход будет sbstr= 01234, а не sbstr = 012345

Ответ 4

В общем случае функция для возврата строки после подстроки

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'))