43

If you look at the jsfiddle from question,

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

This returns all characters after the :, how can I adjust this to return all the characters before the :

something like var str_sub = str.substr(str.lastIndexOf(":")+1); but this does not work.

4

5 回答 5

76

你小提琴已经完成了这项工作......也许你试图在双冒号之前获取字符串?(你真的应该编辑你的问题)然后代码会是这样的:

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; }
于 2013-05-09T20:14:29.657 回答
37

另一种方法是用“:”分割字符串,然后从末尾弹出。 var newString = string.split(":").pop();

于 2017-01-27T18:48:33.940 回答
6

请注意 subString 的第一个参数是基于 0 的,而第二个是基于一个的。

例子:

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

输出将是sbstr= 01234而不是sbstr = 012345

于 2013-05-12T07:55:04.427 回答
6

通常,在子字符串之后返回字符串的函数是

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

于 2018-11-22T09:14:49.870 回答
-1

substring() 方法返回开始和结束索引之间的字符串部分,或者返回到字符串的末尾。

// substring(indexStart, indexEnd); // syntax
// in your case
str = str.substring(0, str.indexOf(":"));
于 2021-07-31T01:41:29.230 回答