對於JS中的字符串(String)我們經常使用,今天總結了一下常見的String方法。
1. length
檢測字符串的長度
let str = 'abcdef';
console.log(str.length);
2. slice()
截取指定位置的字符串
參數1:開始截取的位置,下標
參數2: 選填,若不填,則截取到最後。若傳入要截止的下標,則截取從開始的下標到截止的下標中間的部分
若參數爲負值,則從該字符串的末尾部分數
返回值: 爲截取中的內容(前包後不包), 不會改變原字符串
let str = 'abcdef';
let str1 = str.slice(1, 3);
console.log(str);
console.log(str1);
let str2 = str.slice(1);
console.log(str2);
let str3 = str.slice(-3, -1);
console.log(str3);
3. substr
參數1: 開始截取字符串的下標
參數2: length長度,要截取字符的長度
若參數爲負值,則從該字符串的末尾部分數
返回值: 爲截取中的內容, 不會改變原字符串
let str = 'abcdef';
let str1 = str.substr(1, 3);
console.log(str);
console.log(str1);
let str2 = str.substr(1);
console.log(str2);
let str3 = str.substr(-3, 2);
console.log(str3);
4. substring
參數1:要截取字符的開始下標
參數2:可選,要截止的下標,若不傳則會截取到末尾
返回值: 爲截取中的內容(前包後不包)跟slice一樣, 不會改變原字符串
注意:不能傳入負值,從字符串末尾截取
let str = 'abcdef';
let str1 = str.substring(2, 4);
console.log(str);
console.log(str1);
let str2 = str.substring(2);
console.log(str2)
5. split
將字符串按指定字符,把一個字符串分割成數組
參數1: 字符串中的字符,以這個字符爲界限分割成數組
參數2:可選,若不傳,則會將這個字符串按情況分割成數組,數組長度沒限制。傳入則限制數組的長度,
若分割成的數組大於指定的長度,則多餘的項會省略返回值:分割後的數組,不包括指定字符本身注意:
如果指定的字符串爲空,則會截取字符串每個都分割開
可以使用正則代替指定的那個字符串
let str = 'abcdbef';
let str1 = str.split('b');
console.log(str1);
let str2 = str.split('b', 2);
console.log(str2);
let str3 = str.split('');
console.log(str3);
6. indexOf()
檢測指定字符首次出現的位置下標
參數1: 指定的字符
參數2:可選,從那個位置開始下標
返回值:若存在返回當前字符的下標,否則返回-1
注意對大小寫敏感
let str = 'abCcdecf';
let str1 = str.indexOf('c');
console.log(str1);
let str2 = str.indexOf('g');
console.log(str2);
let str3 = str.indexOf('c', 3);
console.log(str3);
let str4 = str.indexOf('c');
console.log(str4);
7. lastIndexOf()
檢測一個字符串中是否存在傳入的字符,從該字符串的末尾查詢
參數1:傳入的指定字符
參數2:可選 傳入指定的位置(下標),從該位置之前的字符查詢
let str = 'abdcdef';
console.log(str.lastIndexOf('d'));
console.log(str.lastIndexOf('d', 1));
console.log(str.lastIndexOf('d', 3)); // 這裏也就是從字符串(abdc)中查詢字符(d)是否存在
8. replace()
將指定的字符替換成別的字符,只替換第一次出現的
參數1:要替換的指定字符
參數2:要替換成的字符
返回值:替換後的字符串
可以使用正則, 如果想替換成全部可以使用正則以及其中的g,若想忽略大小寫則用i
let str = 'abcdbef';
let str1 = str.replace('b', 'z');
console.log(str1);
let str2 = 'a1b2c3d4';
let str3 = str2.replace(/\d/g, 'z');
console.log(str3)
9. charAt()
根據下標,找到該下標對應的字符
參數:字符串中某個位置的數字,就是某字符在字符串的下標
返回值:根據下標返回下標對應的字符
如果指定的下標的數字大於該字符串的長度會返回空
let str = 'abcdef';
let str1 = str.charAt(2);
console.log(str1);
console.log(str)
let str2 = str.charAt(7);
console.log(str2);
10. toLowerCase()
toLowerCase 將字符串轉爲小寫
返回值:該字符串的小寫
let str = 'ABcdef';
let str1 = str.toLowerCase();
console.log(str);
console.log(str1);
11. toUpperCase()
將小寫字符串轉化爲大寫
let str = 'abcdef';
let str1 = str.toUpperCase();
console.log(str);
console.log(str1);
ES6 新增
12. for of 字符串遍歷
for(let str of 'abcdef'){
console.log(str);
}
13. includes(), startsWith(), endsWith()
includes() 返回值布爾型 是否在該字符串中找到指定字符
startsWith() 返回值布爾型 在該字符串頭部是否存在該字符
endsWith() 返回值布爾型 在該字符串尾部是否存在該字符
參數2:可選 表示開始搜索的位置
假若參數爲n,endsWith()跟includes()和startsWith()有所不同,endsWith針對的是n前面的字符不包括n本身的字符
而那兩個則代碼從n到結尾的字符串,包括n本身
let str = 'abcdef';
console.log(str.includes('d'));
console.log(str.includes('z'));
console.log(str.startsWith('a'));
console.log(str.startsWith('b'));
console.log(str.endsWith('f'));
console.log(str.endsWith('z'));
console.log(str.includes('d', 2));
console.log(str.startsWith('d', 3));
console.log(str.endsWith('d', 3));
console.log(str.endsWith('c', 3));
14. repeat()
將原字符串重複n次
如果是小數會被取整
let str = 'abc';
console.log(str);
console.log(str.repeat(2));
console.log(str.repeat(3.6));
15. padStart(), padEnd()
padStart() 頭部補全
padEnd() 尾部補全
字符串補全,如果長度不夠指定長度,補全
參數1:指定字符串長度
參數2:補全長度的字符
返回值,返回新的字符串
注意:
如果指定的長度小於或等於原字符串長度,則返回原字符串
如果指定的長度小於原字符串長度+要補充的字符的長度,會吧要補充的字符從尾部省略
let str = 'ab';
console.log(str);
console.log(str.padStart(4, 'x'));
console.log(str.padEnd(4, 'x'));
let str1 = 'abcdef';
console.log(str1.padEnd(5, 'x'));
console.log(str1.padEnd(6, 'x'));
console.log(str.padEnd(4, '1234'));
console.log('12'.padStart(10, 'YYYY-MM-DD'));