关键词

javascript substr和substring用法比较

JavaScript 中的 substr()substring() 都用于从字符串中提取子字符串。它们之间的区别在于如何指定提取子字符串的开始位置和结束位置。

substr() 方法

substr() 方法接受两个参数,第一个参数是开始提取子字符串的位置,第二个参数是提取子字符串的长度。例如:

let str = "hello world";
let result = str.substr(1, 4); // 从第二个字符开始,提取四个字符,结果为 "ello"

注意,第一个参数是子字符串的开始位置,而不是它的结束位置。如果第一个参数是负数,则表示从字符串末尾开始计数。例如:

let str = "hello world";
let result = str.substr(-3); // 从倒数第三个字符开始,直到字符串末尾,结果为 "rld"

substring() 方法

substring() 方法接受两个参数,第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不包含该位置的字符)。例如:

let str = "hello world";
let result = str.substring(1, 5); // 从第二个字符开始,到第五个字符之前,结果为 "ello"

注意,第一个参数必须小于第二个参数。如果参数中有负数,则会被视为 0。例如:

let str = "hello world";
let result = str.substring(-3, 4); // 等同于 str.substring(0, 4),结果为 "hell"

substr()substring() 的比较

  1. substr() 的第二个参数是子字符串的长度,而 substring() 的第二个参数是子字符串的结束位置。这意味着,substr() 可以使用负数表示从结尾开始数的位置,而 substring() 不行。

  2. 当第一个参数是相同的正数时,substr()substring() 的结果是一样的。例如:

let str = "hello world";
let result1 = str.substr(1, 4); // "ello"
let result2 = str.substring(1, 5); // "ello"

然而,当第一个参数是负数时,它们的结果是不同的。因为 substring() 将负数参数转换为 0,而 substr() 将负数参数解释为从结尾开始数的位置。例如:

let str = "hello world";
let result1 = str.substr(-3); // "rld"
let result2 = str.substring(-3); // "hello world"

因此,当需要从结尾开始提取子字符串时,应该使用 substr()

总之, substr()substring() 虽然有相似的功能,但它们的参数表达方式不同,需要根据具体情况谨慎使用。

本文链接:http://task.lmcjl.com/news/11806.html

展开阅读全文