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

Smu*_*ger 36 javascript substring

如果你看的jsfiddle问题,

var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);
Run Code Online (Sandbox Code Playgroud)

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

类似的东西, var str_sub = str.substr(str.lastIndexOf(":")+1);但这不起作用.

Hex*_*dus 58

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

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;
Run Code Online (Sandbox Code Playgroud)

HTML

<p>
  <h5>Input:</h5>
  <strong id="my-input">Left Text:Right Text</strong>
  <h5>Output:</h5>
  <strong id="my-output">XXX</strong>
</p>
Run Code Online (Sandbox Code Playgroud)

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; }
Run Code Online (Sandbox Code Playgroud)

  • 我认为你应该避免在你的答案中包含一堆无关的CSS和HTML (2认同)

小智 29

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


小智 5

并注意subString的第一个参数基于0,第二个基于一个。

例:

String str= "0123456";
String sbstr= str.substring(0,5);
Run Code Online (Sandbox Code Playgroud)

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


bes*_*hes 5

一般来说,在子字符串之后返回字符串的函数是

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'))
Run Code Online (Sandbox Code Playgroud)