如何在某个字符前返回部分字符串?

时间:2013-05-09 20:00:19

标签: javascript substring

如果您从jsfiddle查看question

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

这将返回:之后的所有字符,如何调整此字符以返回:

之前的所有字符 等等 var str_sub = str.substr(str.lastIndexOf(":")+1);但这不起作用。

5 个答案:

答案 0 :(得分:52)

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

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

其中'str'表示内部字符串的变量。

Click here for JSFiddle Example

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

答案 1 :(得分:27)

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

答案 2 :(得分:4)

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

示例:

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

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

答案 3 :(得分:1)

通常,在子字符串为

之后返回字符串的函数

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

答案 4 :(得分:-1)

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

// substring(indexStart, indexEnd); // syntax
// in your case
str = str.substring(0, str.indexOf(":"));