常用的js字符串函數(shù)集合
一玻募、其他數(shù)據(jù)類型轉(zhuǎn)換為字符串類型
(1).最直接的? 給數(shù)據(jù)加引號(任何數(shù)據(jù)類型加上引號都變成字符串)
var num = 24;
var str = "24";
console.log(str);? // 返回值為: 24
console.log(typeof(num));? // 返回值為:number? typeof() 判斷類型
console.log(typeof(str));? // 返回值為:string? typeof() 判斷類型
(2-1).toString()
var num = 24;
var str = num.toString();
console.log(str);? // 返回值為: 24
console.log(typeof(str));? // 返回值為:string? typeof() 判斷類型
(2-2).String()
var num = 24;
var str = String(num);
console.log(str);? // 返回值為: 24
console.log(typeof(str));? // 返回值為:string? typeof() 判斷類型
(3).join() 方法? ? 把數(shù)組中的所有元素放入一個(gè)字符串
var arr = ["abc","def","ghi!"];
var str = arr.join(''); // ' ' 中加間隔符? 為空默認(rèn)不加
console.log(str);? // 返回值為:abcdefghi
console.log(typeof(str));? // 返回值為:string? typeof() 判斷類型
二史隆、split() 字符串分割
(1).將字符串按要求拆分以數(shù)組的形式返回
var str = "abcd,efgh,ijkl";
var arr1 = str.split(","); // 以“,”為界分割字符串
var arr2 = str.split(",",2); // 第二個(gè)參數(shù),表示返回的字符串?dāng)?shù)組的最大長度
console.log(arr1);? // 返回值為:["abcd", "efgh", "ijkl"]
console.log(arr2);? // 返回值為:["abcd", "efgh"]
(2).將字符串逐個(gè)拆分以數(shù)組的形式返回
var str = "abcd,efgh,ijkl";
var arr1 = str.split("");
var arr2 = str.split("",8); // 第二個(gè)參數(shù),表示返回的字符串?dāng)?shù)組的最大長度
console.log(arr1);? // 返回值為:["a", "b", "c", "d", ",", "e", "f", "g", "h", ",", "i", "j", "k", "l"]
console.log(arr2);? // 返回值為:?["a", "b", "c", "d", ",", "e", "f", "g"]
三、replace() 字符串替換
var str = "abcd,efgh,ijkl,efghwxyz";
var replaceStr1 = str.replace("efgh"," ");? //第二個(gè)參數(shù)為空是默認(rèn)刪除
var replaceStr2 = str.replace(/efgh/,"aaaa");? //第二個(gè)參數(shù)不為空時(shí),替換對應(yīng)字符串,默認(rèn)只進(jìn)行第一次匹配操作的替換
var replaceStr3 = str.replace(/efgh/g,"aaaa"); //默認(rèn)只進(jìn)行第一次匹配操作的替換入蛆,想要全局替換,需要加上正則全局標(biāo)識 g
console.log(replaceStr1); // 返回值為:abcd, ,ijkl,efghwxyz
console.log(replaceStr2); // 返回值為:abcd,aaaa,ijkl,efghwxyz
console.log(replaceStr3); // 返回值為:abcd,aaaa,ijkl,aaaawxyz
四硕勿、獲取字符串長度
var str = "abcd,efgh,ijkl,efghwxyz";
var strLength = str.length;
console.log(strLength); // 返回值為:23
五哨毁、indexOf() / lastIndexOf()查詢子字符串(判斷字符串內(nèi)是否包含子串)
(1).indexOf() 正向查找? 該方法對大小寫敏感,返回字符串中一個(gè)子元素第一次出現(xiàn)的下標(biāo)值(從左到右搜索),如果沒有匹配項(xiàng)源武,返回 -1
var str="Hello world!";
var index0 = str.indexOf("llo");
var index1 = str.indexOf("l");
var index2 = str.indexOf("o",3);? // 第二個(gè)參數(shù)為開始查詢的位置下標(biāo)
var index3 = str.indexOf("a");
console.log(index0); // 返回值為:2? 返回字符串中一個(gè)子元素第一次出現(xiàn)的下標(biāo)值(從左到右搜索)
console.log(index1); // 返回值為:2? 返回字符串中一個(gè)子元素第一次出現(xiàn)的下標(biāo)值(從左到右搜索)
console.log(index2); // 返回值為:4? 返回字符串中一個(gè)子元素第一次出現(xiàn)的下標(biāo)值(從左到右搜索)
console.log(index3); // 返回值為:-1? 沒有匹配項(xiàng)挑庶,返回 -1
(2).lastIndexOf() 反向查找? 該方法對大小寫敏感言秸。返回字符串中一個(gè)子元素第一次出現(xiàn)的下標(biāo)值(從右到左搜索),如果沒有匹配項(xiàng)迎捺,返回 -1
var str = "Hello world!";
var index0 = str.lastIndexOf("lo");?
var index1 = str.lastIndexOf("l");?
var index2 = str.lastIndexOf("o",5);? // 第二個(gè)參數(shù)為開始查詢的位置下標(biāo)
var index3 = str.lastIndexOf("a");
console.log(index0); //返回值為:3
console.log(index1); //返回值為:9
console.log(index2); //返回值為:4
console.log(index3); //返回值為:-1? 沒有匹配項(xiàng)举畸,返回 -1
六、字符串匹配
//(1).match()? 使用字符串直接進(jìn)行匹配凳枝,被匹配的字符串內(nèi)包含要匹配的字符串時(shí)抄沮,返回所要匹配的字符串 沒有返回 null
var str = "abcd,efgh,ijkl,efghwxyz!";
var matchStr0 = str.match("ij");
var matchStr1 = str.match("pp");
console.log(matchStr0); // 返回值為:ij
console.log(matchStr1); // 返回值為:null
(2).search()? 進(jìn)行正則匹配查找。如果查找成功岖瑰,返回字符串中匹配的索引值叛买。否則返回 -1
var str = "abcd,efgh,ijkl,efghwxyz!";
var regexp0 = /ghw/;
var regexp1 = /jqk/;
var matchStr0 = str.search(regexp0);
var matchStr1 = str.search(regexp1);
console.log(matchStr0); //返回值為: 17?
console.log(matchStr1); //返回值為: -1
七、字符串連接
//(1).普通方法
var str1 = "Hello";
var str2 = "world!";
var newStr = str1+" "+str2;
console,log(newStr)? //返回值為:Hello world!
(2).concat() 方法
var str1 = "Hello";
var str2 = " world,";
var newStr = str1.concat(str2);
console,log(newStr)? //返回值為:Hello world!
八蹋订、字符串切割和提取
(1).slice()? (不包括截取點(diǎn))
var str = "hello world!";
var sliceStr1 = str.slice(-3);? //一個(gè)參數(shù)時(shí) 默認(rèn)截取全部? 負(fù)數(shù)時(shí)為倒序截取 正序輸出
var sliceStr2 = str.slice(-3,-1);? //兩個(gè)參數(shù)時(shí)? 第一個(gè)為截取起點(diǎn)率挣,第二個(gè)為截取終點(diǎn)
var sliceStr3 = str.slice(3);? //一個(gè)參數(shù)時(shí) 默認(rèn)截取全部? 正數(shù)是為正序截取 正序輸出
var sliceStr4 = str.slice(3,7);? //兩個(gè)參數(shù)時(shí)? 第一個(gè)為截取起點(diǎn),第二個(gè)為截取終點(diǎn)
console.log(sliceStr1); //返回值為: ld!
console.log(sliceStr2); //返回值為: ld
console.log(sliceStr3); //返回值為: lo world!
console.log(sliceStr4); //返回值為: lo w
(2).substr()? (包括截取點(diǎn))
var str = "hello world!";
var substrStr1 = str.substr(3);? //一個(gè)參數(shù)時(shí) 默認(rèn)截取全部
var substrStr2 = str.substr(3,7);? //第二個(gè)參數(shù)為截取的個(gè)數(shù)
console.log(substrStr1); //返回值為: lo world!
console.log(substrStr2); //返回值為: lo worl
(3).substrsubstring (包括截取點(diǎn))
var str = "hello world!";
var substringStr1 = str.substring(3);? //一個(gè)參數(shù)時(shí) 默認(rèn)截取全部
var substringStr2 = str.substring(3,7);? //兩個(gè)參數(shù)為截取起點(diǎn)和終點(diǎn)位置
console.log(substringStr1); //返回值為: lo world!
console.log(substringStr2); //返回值為: lo w
九露戒、字符串大小寫轉(zhuǎn)換
(1).toLowerCase() 大寫變小寫
var str = "Hello World!";
var lowCaseStr = str.toLowerCase();
console.log(lowCaseStr); //返回值為: hello world!
(2).toUpperCase() 小寫變大寫
var str = "Hello World!";
var upCaseStr = str.toUpperCase();
console.log(upCaseStr); //返回值為: HELLO WORLD!
十椒功、trim() 字符串去空格
var str = "? ? hello world? ? ? ";?
var trimStr = str.trim();? // 默認(rèn)去掉全部空格
console.log(trimStr) // 返回值為:hello world
十一、charAt()? 返回指定位置的字符
var str = "abcdefg";
var char = str.charAt(4);
console.log(char);? // 返回值為: e
十二智什、charCodeAt()? 獲取指定字符的字符編碼值 (ASCII碼)
var str = "abcdefg";
var char = str.charCodeAt(4);
console.log(char);? // 返回值為:101