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()
的比较substr()
的第二个参数是子字符串的长度,而 substring()
的第二个参数是子字符串的结束位置。这意味着,substr()
可以使用负数表示从结尾开始数的位置,而 substring()
不行。
当第一个参数是相同的正数时,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