substring substr
时间: 2023-08-25 15:08:18 浏览: 46
substring()和substr()都是用于提取字符串中的一部分字符的方法。
substring()方法接受两个参数,indexStart和indexEnd,它返回从indexStart到indexEnd之间的字符串。如果indexStart等于indexEnd,substring()返回一个空字符串。如果indexEnd省略,则提取到字符串的末尾。如果任一参数小于0或是NaN,它被视为0。如果任何一个参数都大于字符串的长度,则被视为字符串的长度。如果indexStart大于indexEnd,那么substring()的效果就好像这两个参数被交换了一样。
示例:
var str = 'abcdefghij';
console.log(str.substring(1, 2)); // 返回'b'
console.log(str.substring(1, 1)); // 返回空字符串
console.log(str.substring(-3, 2)); // 返回'ab'
console.log(str.substring(-3)); // 返回'abcdefghij'
console.log(str.substring(1)); // 返回'bcdefghij'
console.log(str.substring(-20, 2)); // 返回'ab'
console.log(str.substring(2, 20)); // 返回'cdefghij'
console.log(str.substring(20, 2)); // 返回'cdefghij'
而substr()方法接受两个参数,start和length,它返回从指定位置开始的字符串中指定字符数的字符。如果start是正数并且大于或等于字符串的长度,则substr()返回一个空字符串。如果start为负数,则将该值加上字符串的长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。如果length为0或为负数,substr()返回一个空字符串。如果length省略,则提取到字符串的末尾。
示例:
var str = 'abcdefghij';
console.log(str.substr(1, 2)); // 返回'bc'
console.log(str.substr(-3, 2)); // 返回'hi'
console.log(str.substr(-3)); // 返回'hij'
console.log(str.substr(1)); // 返回'bcdefghij'
console.log(str.substr(-20, 2)); // 返回'ab'
console.log(str.substr(20, 2)); // 返回空字符串
总结:substring()和substr()的主要区别在于对负数参数的处理方式和对第二个参数的解释。substring()将负数参数视为0,而substr()将负数参数加上字符串长度后再进行计算。另外,substring()的第二个参数是截取的结束位置,而substr()的第二个参数是截取的字符数。
#### 引用[.reference_title]
- *1* *2* [JS中,slice()、substring()、substr()截取字符串的区别](https://blog.csdn.net/HL_0423/article/details/102521333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [substr和substring的区别](https://blog.csdn.net/weixin_66996746/article/details/125977824)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]