1. 程式人生 > >javascript中,substr | slice、substring的區別

javascript中,substr | slice、substring的區別

假如有一種資料,格式為 平年2018/12/12 08:51PM,如何獲取字串2018/12/12 08:51

const str = '平年2018/12/12 08:51PM'; // '2018/12/12 08:51'.length === 16
// 第一種 slice, 看文件吧...
console.log(str.slice(2, -2));

// 第二種 substring(i1,i2), 從下標i1 ~ i2#之間#的字元,注意是之間,i2 === 目標字元下標 + 1
console.log(str.substring(2, 18)); // 平年2018/12/12 08:51 -> 最後一個1的下標是17,所以i2 === 18

// 第三種 substr(i,n), 從下標i開始,擷取n個字元,不推薦使用,因為不是標準規範
console.log(str.substr(2, 16));

/* substring、substr關於負數 */
/**
 * substring(i1,i2)
 * 均不接受負數, 如果傳入負數其實也有值返回,我想是內部做了處理
 * */
console.log(str.substring(2, -2) === str.substring(0, 2));
console.log(str.substring(-2) === str.substring(0));


/** substr(i1,n)
 * 如果n < 0, 那麼 n === 0, 意思就是不接受負數, 傳入負數會被當做0
 */
console.log(str.substr(-7, 5)); // 08:51
console.log(str.substr(-2)); // PM