字符串操作技巧
1酪耕、判斷字符串是否包含某個字符
indexOf
indexOf():查找某個字符,有則返回第一次匹配到的位置轨淌,否則返回-1
indexOf(要查的元素迂烁,開始查詢的下標(biāo)位置)
let str = "123456";
console.log(str.indexOf("1")); // 輸出結(jié)果:0
console.log(str.indexOf("7")); // 輸出結(jié)果:-1
console.log(str.indexOf("6",6)); // 輸出結(jié)果:7
注:該方法同樣適用于數(shù)組操作
includes
includes():該方法用于判斷字符串是否包含指定的子字符串。如果找到匹配的字符串則返回 true递鹉,否則返回 false
includes(要查的元素盟步,開始查詢的下標(biāo)位置)
注:使用 includes()比較字符串和字符時是區(qū)分大小寫。
let str = '123456';
str.includes('1') // 輸出結(jié)果:true
str.includes('7') // 輸出結(jié)果:false
str.includes('6', 6) // 輸出結(jié)果:false
注:該方法同樣適用于數(shù)組操作
2躏结、字符串截取
slice
slice() 方法用于提取字符串的某個部分却盘,并以新的字符串返回被提取的部分,不改變原字符串。
slice(開始位置谷炸,結(jié)束位置)
結(jié)束位置不填寫值時表示到字符串結(jié)尾處北专,負(fù)數(shù)則代表從結(jié)尾開始
let str = "abcdefg";
str.slice(1,6); // 輸出結(jié)果:"bcdef"
str.slice(1); // 輸出結(jié)果:"bcdefg"
str.slice(); // 輸出結(jié)果:"abcdefg"
str.slice(-2); // 輸出結(jié)果:"fg"
str.slice(6, 1); // 輸出結(jié)果:""
注:該方法同樣適用于數(shù)組操作,數(shù)組使用時是淺拷貝
substring
substring() 用于提取字符串中介于兩個指定下標(biāo)之間的字符
str.substring(a, b)
a:需要截取的第一個字符的索引,該索引位置的字符作為返回的字符串的首字母旬陡。
b:(可選)一個 0 到字符串長度之間的整數(shù)拓颓,以該數(shù)字為索引的字符不包含在截取的字符串內(nèi)。
substring 提取從 a 到 b(不包括)之間的字符描孟。特別地:
如果 a 等于 b驶睦,substring 返回一個空字符串。
如果省略 b匿醒,substring 提取字符一直到字符串末尾场航。
如果任一參數(shù)小于 0 或為 NaN,則被當(dāng)作 0廉羔。
如果任一參數(shù)大于 stringName.length溉痢,則被當(dāng)作 stringName.length。
如果 a 大于 b憋他,則 substring 的執(zhí)行效果就像兩個參數(shù)調(diào)換了一樣孩饼。見下面的例子。
var anyString = "Mozilla";
// 輸出 "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
console.log(anyString.substring(3,-3));
console.log(anyString.substring(3,NaN));
console.log(anyString.substring(-2,3));
console.log(anyString.substring(NaN,3));
// 輸出 "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));
// 輸出 ""
console.log(anyString.substring(4,4));
// 輸出 "Mozill"
console.log(anyString.substring(0,6));
// 輸出 "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));
3竹挡、字符串替換
replace()
替換指定字符串镀娶,并返回一個新的字符串,不改變原字符串
string.replace(searchvalue, newvalue)
searchvalue:一個RegExp 對象或者其字面量揪罕,要替換的字符串梯码;
newvalue:用于替換掉第一個參數(shù)在原字符串中的匹配部分的字符串,該參數(shù)可以為一個function函數(shù)
let str = "abcdef";
str.replace("c", "z") // 輸出結(jié)果:abzdef
4好啰、字符串轉(zhuǎn)數(shù)字
parseInt()
解析一個字符串并返回指定基數(shù)的十進(jìn)制整數(shù)
parseInt(string, radix)
string:字符串轩娶,既被解析的值
radix :可選從 2 到 36,表示字符串的基數(shù)坎怪。例如指定 16 表示被解析值是十六進(jìn)制數(shù)罢坝。請注意廓握,10不是默認(rèn)值搅窿!
由于不是所有的瀏覽器都是默認(rèn)采用的10進(jìn)制方案進(jìn)行的,因此隙券,在使用 parseInt 時男应,一定要指定一個 radix。
parseInt("50",10); // 輸出結(jié)果:50
parseFloat()
函數(shù)解析一個參數(shù)(必要時先轉(zhuǎn)換為字符串)并返回一個浮點數(shù)娱仔。
給定值被解析成浮點數(shù)沐飘。如果給定值不能被轉(zhuǎn)換成數(shù)值,則會返回 NaN。
parseFloat("10.01") // 輸出結(jié)果:10.01