Как вернуть часть строки после определенного символа?
если вы посмотрите на jsfiddle С вопрос,
var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);
Это возвращает все символы после :
, Как я могу изменить это, чтобы вернуть все символы перед :
что-то вроде
var str_sub = str.substr(str.lastIndexOf(":")+1);
но это не работает.
3 ответов
вы скрипка уже делает свою работу ... может быть, вы пытаетесь получить строку до двойное двоеточие? (вы действительно должны отредактировать свой вопрос) , тогда код будет выглядеть так:
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; }
другим методом может быть разделение строки на":", а затем всплывающее окно в конце.
var newString = string.split(":").pop();
и обратите внимание,что первый аргумент подстроки основан на 0, а второй-на одном.
пример:
String str= "0123456";
String sbstr= str.substring(0,5);
выход будет sbstr= 01234
, а не sbstr = 012345