## 定義 ``` var str = new String("abcdefg"); var str = "abcdefg"; ``` ## 常用方法 ### 字符方法 1.charAt(index):返回下標為index的字符 ``` //字符串“Hello World!”下標為1的字符 var str = "Hello World!"; console.log(str.charAt(1)); // e ``` 2.方括號[index]:返回下標為index的字符(IE8以前不支持,會返回undefined) ``` //字符串“Hello World!”下標為1的字符的ASCII碼 var str = "Hello World!"; console.log(str[1]); // e ``` 3.charCodeAt():返回下標為index的字符編碼(ASCII碼) ``` //字符串“Hello World!”下標為1的字符的ASCII碼 var str = "Hello World!"; console.log(str.charCodeAt(1)); // 101 ``` ### 拼接字符串 1.str.concat(str1,str2,str3....):str與str1,str2,str3...進行拼接 ``` // 將"Hello"," World!","My Blog!"三個字符串拼接起來 var str1 = "Hello"; var str2 = " World!"; var str3 = "My Blog!"; var str4 = str1.concat(str2,str3); console.log(str4); // Hello World!My Blog! ``` 2.加號+ ``` // 將"Hello"," World!","My Blog!"三個字符串拼接起來 var str1 = "Hello"; var str2 = " World!"; var str3 = "My Blog!"; var str4 = str1 + str2 + str3; console.log(str4); // Hello World!My Blog! ``` ### 剪切字符串 1.str.slice(start,end):獲取[start,end)之間的字符串
若start,end為正數,從前往后計算,獲取[start,end)之間的字符串,注意end是開區間,開頭第一個字符的下標從0開始
若start,end為負數,從后往前計算,獲取[start,end)之間的字符串,末尾第一個字符的下標從-1開始 ``` var str = "Hello World!"; //獲取str的“llo” var subStr1 = str.slice(2,5); console.log(subStr1); // llo //獲取str的“orl” var subStr2 = str.slice(-5,-2); console.log(subStr2); //orl ``` 2.str.substr(start,length):從下標為start位置開始獲取長度為length的字符串。
注意,若start為負數的話,表示從后向前進行計算start的位置,-1表示最后一個字符 ``` var str = "Hello World!"; // 獲取字符串Hello var subStr1 = str.substr(0,5); console.log(subStr1); // Hello //獲取字符串World var subStr2 = str.substr(-6,5); console.log(subStr2); // World ``` 3.str.substring(start,end):提取[start,end)之間的字符串,注意start,end都要非負 ``` var str = "Hello World!"; //獲取str的“llo” var subStr1 = str.substring(2,5); console.log(subStr1); // llo ``` ### 字符串位置方法 1.indexOf(searchvalue,fromindex):從fromindex開始向后尋找searchvalue首次出現的位置,默認為0。 ``` // 獲取下列字符串的字符‘o’的所有位置 var str = "Hello World! Welcome to my Blog!"; var arr = []; var pos = str.indexOf('o'); arr.push(pos); while(true){ pos = str.indexOf('o',pos+1); if(pos == -1) break; arr.push(pos); } console.log(arr); // [4, 7, 17, 22, 29] ``` 1.lastIndexOf(searchvalue,fromindex)從fromindex開始向前尋找searchvalue首次出現的位置,默認為0。 ``` // 獲取下列字符串的字符‘o’的所有位置 var str = "Hello World! Welcome to my Blog!"; var arr = []; var pos = str.lastIndexOf('o'); arr.push(pos); while(true){ pos = str.lastIndexOf('o',pos-1); if(pos == -1) break; arr.push(pos); } console.log(arr); // [29, 22, 17, 7, 4] ``` ### 刪除多余空格 trim():去除字符串兩端多余的空格 ``` //由於輸出字符串空格不好看出來,所以輸出長度看看 var str = " abc "; console.log(str.length); // 5 str = str.trim(); console.log(str.length); //3 ``` ### 比較字符串 str1.localeCompare(str2):
返回0:字符串str1等於參數str2。
返回負數:字符串str1的字典序先於參數str2。
返回正數:字符串str2的字典序后於參數str2。
``` var str1 = "yellow"; console.log(str1.localeCompare("yellow")); //0 console.log(str1.localeCompare("zoo")); //-1 console.log(str1.localeCompare("abc")); //1 ``` ### 模式匹配 涉及到正則表達式,內容太多,以后專門寫個博文總結。
#### 參考文獻: - \[1]《javascript高級程序設計》