5.22字符串學習
* 15.字符串對象
* 16.內置對象
* 17.String API
字符串對象
字符串:由多個字符組成的只讀數組
只讀:所有API都不能直接修改原字符串,必須返回新字符串
數組:凡是數組中不直接修改原數組的API,字符串都能用!
比如:
- 都可用下標訪問每個字符:str[i]
- .length屬性獲得字符個數
- 獲取子字符串: str.slice(starti,endi+1)
var str = 'Hello';
console.log(str[2]); //l
console.log(str.length); //5
console.log(str.slice(0,3)); //hel
內置對象
包裝類型:專門封裝原始類型的值,提供對值進行操作的方法
為什么使用:原始類型的值不帶任何操作方法,必須通過包裝類型提供對原始類型操作的方法
何時使用:在試圖對原始類型的值調用方法時,js會自動創建對應的包裝類型對象,封裝原始類型的值。
*/
String API
所有API都無法修改原字符串,都會返回新字符串
- 大小寫轉換:
var newStr=str.toLowerCase(); //全部轉小寫
var newStr=str.toUpperCase(); //全部轉大寫
var newStr = 'Hello';
var rs = newStr.toLowerCase();
console.log(rs); //hello
console.log(newStr); //Hello
rs = newStr.toUpperCase();
console.log(rs); //HELLO
console.log(newStr); //Hello
2.獲取指定位置的字符或unicode:
var char=str[i]
str.charAt(i);
var unicode=str.charCodeAt(i);
var str = 'Hello';
var rs = str[1];
console.log(rs);
rs = str.charAt(1);
console.log(rs);
console.log(newStr.charCodeAt(1)); //101
3.查找關鍵字的位置:2個API , 返回的都是關鍵字的位置下標
找下一個匹配的關鍵字位置:var i=str.indexOf("kword",starti)
如果省略starti,從0開始
找前一個匹配的關鍵子位置:
var i=str.lastIndexOf("kword",starti);
如果省略starti,從最后一位開始
starti:開始查找的位置
如果沒找到,都返回-1
var str = '今天晨跑很爽,明天繼續晨跑';
var i = str.indexOf('晨跑',5);
console.log(i); //11
var j = str.lastIndexOf('晨跑');
console.log(j); //11
var k = str.lastIndexOf('夜跑');
console.log(k); //-1
4.獲取子字符串:3種:
var sub=str.slice(starti,endi+1); //支持負數
str.substring(starti,endi+1); //不支持負數參數
str.substr(starti,n);
var str = '01234567';
var rs = str.slice(-7,-2);
console.log(rs); //12345
rs = str.substring(0,4);
console.log(rs); //0123
rs = str.substr(0,4);
console.log(rs); //0123
5.切割字符串:
var arr=str.split("分割符");
切割后的數組中不包含分隔符的
var str = '123=456=789';
var arr = str.split('=');
console.log(arr);
console.log(arr[0]);