JS:String.prototype.substring()方法

JS:String.prototype.substring()方法

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

JavaScript Demo: String.substring()

var str = 'Mozilla';

console.log(str.substring(1, 3));
// expected output: "oz"

console.log(str.substring(2));
// expected output: "zilla"

Syntax/语法

String.prototype.substring(indexStart[, indexEnd]);

  • Parameters/参数:

    • indexStart
      • The index of the first character to include in the returned substring.
      • 要返回的子字符串中的第一个字符的索引。
    • indexEnd
      • Optional. The index of the first character to exclude from the returned substring.
      • 可选的。要返回的子字符串中排除的第一个字符的索引。
  • Return Value
    • A new string containing the specified part of the given string.

Description

  • substring() extracts characters from indexStart up to but not including indexEnd. In particular:

    • If indexEnd is omitted, substring() extracts characters to the end of the string.
      (如果indexEnd是被省略的,substring()将提取字符直到字符串的结束。)
    • If indexStart is equal to indexEnd, substring() returns an empty string.
      (如果indexStart等于indexEnd,substring()将返回一个空的字符串。)
    • If indexStart is greater than indexEnd, then the effect of substring() is as if the two arguments were swapped; See example below.(如果indexStart大于indexEnd,效果相当于两个参数调换;示例在下面。)
  • Note: Any argument value that is less than 0 or greater than stringName.length is treated as if it were 0 and stringName.length respectively. Any argument value that is NaN is treated as if it were 0.
    任何小于0或大于stringName.length的参数值将被视为0或stringName.length。任何NaN的参数值都将被视为0。

示例

Using substring()

The following example uses substring() to display characters from the string 'Mozilla':

下面的示例使用substring()从字符串'Mozilla'中提取字符:

var anyString = 'Mozilla';

// Displays 'M'
console.log(anyString.substring(0, 1));
console.log(anyString.substring(1, 0));

// Displays 'Mozill'
console.log(anyString.substring(0, 6));

// Displays 'lla'
console.log(anyString.substring(4));
console.log(anyString.substring(4, 7));
console.log(anyString.substring(7, 4));

// Displays 'Mozilla'
console.log(anyString.substring(0, 7));
console.log(anyString.substring(0, 10));

Using substring() with length property

The following example uses the substring() method and length property to extract the last characters of a particular string. This method may be easier to remember, given that you don't need to know the starting and ending indices as you would in the above examples.

// Displays 'illa' the last 4 characters
var anyString = 'Mozilla';
var anyString4 = anyString.substring(anyString.length - 4);
console.log(anyString4);

// Displays 'zilla' the last 5 characters
var anyString = 'Mozilla';
var anyString5 = anyString.substring(anyString.length - 5);
console.log(anyString5);

Difference between substring() and substr()

There's a subtle difference between the substring() and [substr()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr) methods, and you should be careful not get them confused.

The arguments of substring() represent the starting and ending indexes, while the arguments of substr() represent the starting index and the length of characters to include in the returned string.

var text = 'Mozilla';
console.log(text.substring(2,5)); // => "zil"
console.log(text.substr(2,3)); // => "zil"

Replacing a substring within a string

The following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the string 'Brave New World' to 'Brave New Web'.

// Replaces oldS with newS in the string fullS
function replaceString(oldS, newS, fullS) {
  for (var i = 0; i < fullS.length; ++i) {
    if (fullS.substring(i, i + oldS.length) == oldS) {
      fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
    }
  }
  return fullS;
}

replaceString('World', 'Web', 'Brave New World');

Note that this can result in an infinite loop if oldS is itself a substring of newS — for example, if you attempted to replace 'World' with 'OtherWorld' here. A better method for replacing strings is as follows:

function replaceString(oldS, newS, fullS) {
  return fullS.split(oldS).join(newS);
}

The code above serves as an example for substring operations. If you need to replace substrings, most of the time you will want to use String.prototype.replace().

Link to MDN section

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,871评论 0 10
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,928评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,259评论 0 38
  • “之前我还在听你讲故事,现在我却成了故事中 的人,时间好快”这是邻居家小弟昨晚跟我说的一句话,他今年在部队待的第八...
    至此一生_阅读 580评论 0 1
  • 我算是一个内向的人,内向的人做得最多的事情就是跟自己交谈,而跟自己交谈最好的办法就是写作,这是一种非常清晰的,能够...
    xiaohuialex阅读 721评论 0 3

友情链接更多精彩内容