首先我们先来讲一下substr和substring的共同点,它们都是用来截取字符串的方法,所不同的是它们的参数和使用方法略有不同。
substr
方法
substr
方法接受两个参数,第一个参数是起始位置,第二个参数是截取的字符串长度。如果第二个参数是负数,则表示从起始位置开始往后数n个字符,并截取到字符串结束的位置。如果第一个参数是负数,表示从字符串末尾开始往前数的位置。
下面是一个使用substr
方法截取字符串的示例:
const str = "abcdefghijk";
const subStr = str.substr(2, 5);
console.log(subStr); // "cdefg"
在上面的例子中,substr
方法从字符串的第三个字符开始(即下标为2的位置),截取了5个字符。因此,subStr
的值为"cdefg"。
substring
方法
substring
方法也接受两个参数,第一个参数是起始位置,第二个参数是截取字符串的结束位置(不包括该位置的字符)。如果参数是负数,则它会被当做0来处理。如果第一个参数大于第二个参数,则它们会被互换位置。
下面是一个使用substring
方法截取字符串的示例:
const str = "abcdefghijk";
const subStr = str.substring(2,5);
console.log(subStr); // "cde"
在上面的例子中,substring
方法从字符串的第三个字符开始(即下标为2的位置),截取到第六个字符(即下标为5的位置),但不包括第六个字符。因此,subStr
的值为"cde"。
区别
现在回到题目所问的区别上来。其实,substr
和substring
的区别就在于第二个参数的不同:
substr
方法的第二个参数表示截取的字符串长度,而不是结束位置。substring
方法的第二个参数表示截取字符串的结束位置(不包括该位置的字符)。
因此,在实际编程中,我们需要根据具体的需求来选择使用哪个方法。如果我们需要截取的字符串长度已知,那么使用substr
,如果我们需要根据结束位置来截取字符串,那么就使用substring
。
下面是一个进一步说明区别的例子:
const str = "abcdefghijk";
const substringStr = str.substring(2,5);
const substrStr = str.substr(2, 5);
console.log(substringStr); // "cde"
console.log(substrStr); // "cdefg"
在上面的例子中,我们分别使用substring
和substr
方法截取了同一个字符串,但结果却不同。substring
方法从第三个字符开始,一直截取到第六个字符,但不包括第六个字符。而substr
方法则是从第三个字符开始,一直向后截取了5个字符,因此结果包括了第六个字符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS 截取字符串substr 和 substring方法的区别 - Python技术站