知識點:字符串是基本數據類型,無論什么方法,字符串本身是不會變化的。
slice():截取字符串 (與數組的slice方法類似)
//slice(start, end) 截取子字符串
var str="hello world";
console.log(str.slice(7,10)); // 返回值是截取后的字符串:"orl"
console.log(str.slice(9,1)); // 返回值是截取后的字符串:空
console.log(str.slice(-2,1)); // 返回值是截取后的字符串:空 (-2代表倒數第二個字符)
console.log(str.slice(-2,10)); // 返回值是截取后的字符串:"l"
console.log(str); // 字符串本身保持不變:hello world
substring():截取字符串
//substring(start,end)
//負數的情況,裝換為0
//會比較start和end,認為數值小的是start,數字大的是end
var str="hello world";
console.log(str.substring(7,10)); // 保持不變 // 返回值是截取后的字符串:"orl"
console.log(str.substring(-7,5)); // 相當于(0,5) // 返回值是截取后的字符串:"hello"
console.log(str.substring(-4,-7)); // 相當于(0,0) // 返回值是截取后的字符串:空
console.log(str.substring(2,-5)); // 相當于(0,2) // 返回值是截取后的字符串:"he"
console.log(str.substring(3,1)); // 相當于(1,3) // 返回值是截取后的字符串:"el"
console.log(str); // 字符串本身保持不變:"hello world"
substr():截取字符串
//substr(start,len)
//start:必須,指定子字符串的開始位置
//len:可選,表示截取的字符總數,省略是時截取至字符串的末尾
//當start為負數時,將負值與字符串的長度相加
//當len為負數時,返回空字符串
var str="hello world";
console.log(str.substr(6, 3)); // 返回值是截取后的字符串:"wor"
console.log(str.substr(-5, 4)); // 返回值是截取后的字符串:"worl"
console.log(str.substr(3, 0)); // 返回值是截取后的字符串:空
console.log(str.substr(3, -1)); // 返回值是截取后的字符串:空
console.log(str); // 字符串本身保持不變:"hello world"
split():把一個字符串分割成字符串數組 (與數組的join方法相反)
// stringObject.split(separator)
var str = "welcom-to-beijing"
var arr = str.split("-");
console.log(arr); // 返回值是轉換后的數組:["welcome","to","beijing"]
console.log(str); // 字符串本身保持不變:"welcom-to-beijing"
var date = "2016/05/05";
var dateArr = date.split("/");
console.log(dateArr); // 返回值是轉換后的數組:["2016", "05", "05"]
console.log(date); // 字符串本身保持不變:"2016/05/05"
replace():把字符串中的字符替換成其他字符
// stringObject.replace(regexp/substr,replacement)
var tel = "010-12345678,400-100-9098,101-87654321";
var newTel1 = tel.replace(",", " "); //替換第一個
var newTel2 = tel.replace(/,/g, " "); //替換所有
console.log(newTel1); // 返回值是替換后的字符串:"010-12345678 400-100-9098,101-87654321"
console.log(tel); // 字符串本身保持不變:"010-12345678,400-100-9098,101-87654321"
console.log(newTel2); // 返回值是替換后的字符串:"010-12345678 400-100-9098 101-87654321"
console.log(tel); // 字符串本身保持不變:"010-12345678,400-100-9098,101-87654321"
toUpperCase() , toLowerCase():大小寫轉換
//toUpperCase()
var str1="hello world";
console.log(str1.toUpperCase()); // 返回值是轉換后的字符串:"HELLO WORLD"
console.log(str1); // 字符串本身保持不變:"hello world"
//toLowerCase()
var str2="WELCOME";
console.log(str2.toLowerCase()); // 返回值是轉換后的字符串:"welcome"
console.log(str2); // 字符串本身保持不變:"WELCOME"
charAt():取得index位置的字符
//stringObject.charAt(index)
var str = "hello word";
console.log(str.charAt(0)); // 返回index位置的字符:'h'
charCodeAt():取得index位置的字符編碼
//stringObject.charCodeAt(index)
var str = "hello word";
console.log(str.charCodeAt(4)); // 返回index位置字符的字符編碼:111
indexOf():取得子字符串的下標
var email = "marryoo@sohu.com";
console.log(email.indexOf("o")); // 返回子字符串的位置:5
console.log(email.indexOf("x")); // 返回子字符串的位置:-1(沒有找到)
// 以下兩種判斷方式是一樣的
if(email.indexOf("o") !== -1){
console.log('存在o');
}
// ~x 的意思是 -(x + 1)
if(~email.indexOf("o")){
console.log('存在o');
}
lastIndexOf():取得子字符串的下標
var email = "marryoo@sohu.com";
console.log(email.lastIndexOf("o")); // 返回子字符串的位置:14