it-swarm.com.ru

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

Если вы посмотрите на jsfiddle from вопрос ,

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

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

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

32
Smudger

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

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

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

27
A. James McHale

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

Пример:

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

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

4
swapnil_nerd

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

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