字符串操作

知識點:字符串是基本數據類型,無論什么方法,字符串本身是不會變化的。

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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容