Js中substr,substring,slice截取字符串的異同

概述

今天在寫程序的時候發現js中slice也能用來截取字符串,之前都是用substr或substring,因而想着拿它們來對比一下,它們均可以接受兩個參數,第一個是開始截取的位置,默認爲0,第二個下文具體介紹驗證代碼地址:github.com/fanxuewen/e…git

1、只傳第一個參數

當第一個參數爲正數,它們是沒有區別的github

let str='好好學習,每天向上';
console.log('substr---:',str.substr(2));
console.log('substring:',str.substring(2));
console.log('slice----:',str.slice(2))
複製代碼

當第一個參數爲負數時,對於substring若是參數小於 0 或爲 NaN,則被看成 0,而substr和slice則是從後向前數。

let str='好好學習,每天向上';
console.log('substr---:',str.substr(-2));
console.log('substring:',str.substring(-2));
console.log('slice----:',str.slice(-2));
複製代碼

2、兩個參數都傳

兩參數都爲正數,且第二個於第一個時。substr是從第一個參數開始的位置起進行截取,第二個參數表明截取的長度;而substring和slice的兩個參數表示截取位置的索引,包括開始,但不包括結尾bash

let str='好好學習,每天向上';
console.log('substr---:',str.substr(2,4));
console.log('substring:',str.substring(2,4));
console.log('slice----:',str.slice(2,4));
複製代碼

兩參數都爲正數,且第二個 於第一個時。經過和上面的對比能夠看出substr的第二個參數老是表明的是截取的長度;substring的兩個參數表示的是截取的索引(結果只包含索引值小的);slice的兩個參數都是正數且第二個參數小於第一個時會返回空(注意當第二參數是負數,表明的是從後向前數,若是數過來的索引大於第一個參數,仍是截取的包括開始但不包括結束的字符串喲)。

let str='好好學習,每天向上';
console.log('substr---:',str.substr(2,1));
console.log('substring:',str.substring(2,1));
console.log('slice----:',str.slice(2,1));
複製代碼

其餘狀況自行驗證........學習

相關文章
相關標籤/搜索