JavaScript String 字符串方法匯總
var str = "The full name of China is the People's Republic of China."; var pos = str.indexOf("China");
document.getElementById("demo").innerHTML = pos;
var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");
document.getElementById("demo").innerHTML = pos;
var str = "The full name of China is the People's Republic of China.";
var pos = str.search("China");
document.getElementById("demo").innerHTML = pos;
(1) slice(start, end)
(2) substring(start, end)
(3) substr(start, length)
(1) slice() 方法
var str="Hello World"; var str1=str.slice(2); //如果只有一個參數,則提取開始下標到結尾處的所有字符串 var str2=str.slice(2,7); //兩個參數,提取下標為2,到下標為7但不包含下標為7的字符串 var str3=str.slice(-7,-2); //如果是負數,-1為字符串的最后一個字符。提取從下標-7開始到下標-2但不包含下標-2的字符串。前一個數要小於后一個數,否則返回空字符串 console.log(str1); //llo World console.log(str2); //llo W console.log(str3); //o Wor
(2)substring() 方法
substring() 類似於 slice()
不同之處在於 substring() 無法接受負的索引
如果省略第二個參數,則該 substring() 將裁剪字符串的剩余部分。
var str="Hello World"; var str1=str.substring(2) var str2=str.substring(2,2); var str3=str.substring(2,7); console.log(str1); //llo World console.log(str2); //如果兩個參數相等,返回長度為0的空串 console.log(str3); //llo W
substr() 類似於 slice()
不同之處在於第二個參數規定被提取部分的長度
如果首個參數為負,則從字符串的結尾計算位置
var str = "Apple, Banana, Mango"; var res = str.substr(7,6);
結果:
Banana
var str="hello WORLD"; var reg=/o/ig; //o為要替換的關鍵字,不能加引號,否則替換不生效,i忽略大小寫,g表示全局查找。 var str1=str.replace(reg,"**") console.log(str1); //hell** W**RLD
6.str.toLowerCase(): 把字符串轉為小寫,返回新的字符串
var str="Hello World"; var str1=str.toLowerCase(); console.log(str); //Hello World console.log(str1); //hello world
7.str.toUpperCase(): 把字符串轉為大寫,返回新的字符串
var str="hello world"; var str1=str.toUpperCase(); console.log(str); //hello world console.log(str1); //HELLO WORLD
8.str.charAt(): 返回指定下標位置的字符。如果index不在0-str.length(不包含str.length)之間,返回空字符串
var str="hello world"; var str1=str.charAt(6); console.log(str1);
9.str.charCodeAt(): 返回指定下標位置的字符的unicode編碼,這個返回值是 0 - 65535 之間的整數
var str="hello world"; var str1=str.charCodeAt(1); var str2=str.charCodeAt(-2); //NaN console.log(str1); //101
10.str.split(): 把字符串分割成字符串數組
var str="AA BB CC DD"; var string1="1:2:3:4:5"; var str1=str.split("");//如果把空字符串 ("")用作分割符,那么字符串的每個字符之間都會被分割 var str2=str.split(" "); //以空格為分隔符 var str3=str.split("",4); //4指定返回數組的最大長度 var str4=string1.split(":"); console.log(str1); // ["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D"] console.log(str2); //["AA" "BB" "CC" "DD"] console.log(str3); //["A", "A", " ", "B"] console.log(str4); // ["1", "2", "3", "4", "5"]
11.str.match(): 返回所有查找的關鍵字內容的數組
var str="To be or not to be"; var reg=/to/ig; var str1=str.match(reg); console.log(str1); //["To", "to"] console.log(str.match("Hello")); //null
是接收一或多個字符編碼,然后將其轉換為字符串
是String構造函數的一個靜態方法
console.log(String.fromCharCode(104,101,108,108,111));//hello
用於比較兩個字符串 1.如果字符串在字母表中應該排在字符串參數之前,則返回一個負數 1.如果字符串等於字符串參數,則返回0 1.如果字符串在字母表中應該排在字符串參數之后,則返回一個正數
var str="yellow"; console.log(str.localeCompare("brick"));//1 console.log(str.localeCompare("yellow"));//0 console.log(str.localeCompare("zoo"));//-1
14.big() 用大號字體顯示字符串
16.bold() 字符串粗體顯示
17.link() 將字符串顯示為鏈接
18.fontcolor() 指定顏色顯示
19.fontsize() 指定尺寸顯示
20.concat() 連接字符串
.......
ES6新增
1.str.trim() 用來刪除字符串前后的空格
var str=" hello world "; console.log('('+str.trim()+')');//(hello world) console.log('('+str+')');//( hello world )
2.str.repeat() 返回一個新字符串,表示將原字符串重復n次
var str = 'helloworld';
str.repeat( n );//該字符串就會重復n遍;
3.str.padStart ()用於頭部補全
var str = '20199'; //長度達不到 指定位 ,
str.padStart (8,‘ab’);
//abab2019
4.str.padEnd ()用於尾部補全
var str = '2019'; //長度達不到 指定位 ,
str.padEnd(8,‘ab’);
//2019abab
5.str.raw() 往往用來充當模板字符串的處理函數,返回一個斜杠都被轉義(即斜杠前面再加一個斜杠)的字符串,對應於替換變量后的模板字符串
String.raw = function (strings, ...values) {
var output = "";
for (var index = 0; index < values.length; index++) {
output += strings.raw[index] + values[index];
}
output += strings.raw[index]
return output;
}
//t0e1s2t
6.str.codePointAt() 正確解析四個字節的字符
7.String.fromCodePoint()
8.includes() startsWith() endsWith() 判斷字符串中是否存在某個字符串
8.ES6為字符串添加了遍歷器接口,使得字符串可以被for...of
循環遍歷。這個遍歷器最大的優點是可以識別大於0xFFFF
的碼點,傳統的for
循環無法識別這樣的碼點,但是不能遍歷object
var text = String.fromCodePoint(0x20BB7); for (let i = 0; i < text.length; i++) { console.log(text[i]); } // " " // " " for (let i of text) { console.log(i); } // "𠮷"
// 字符串中嵌入變量 var name = "Bob", time = "today"; `Hello ${name}, how are you ${time}?`