一客年、字符方法
charAt方法和charCodeAt方法
相同點(diǎn):charAt方法和charCodeAt方法都接收一個(gè)參數(shù),基于0的字符位置
不同點(diǎn):charAt方法是以單字符字符串的形式返回給定位置的那個(gè)字符
charCodeAt方法獲取到的不是字符而是字符編碼
還可以使用方括號(hào)加數(shù)字索引來(lái)訪問(wèn)字符串中特定的字符
例如:
var str = 'hello world';
console.log(str.charAt(1));// e
console.log(str.charCodeAt(1));// 101
console.log(str[1]);// e
二、字符串方法
1瘾腰、concat()
作用:連接多個(gè)字符串姨裸,并返回一個(gè)新的字符串,不對(duì)源字符串做操作
例如:
var str = 'hello ';
var str1 = str.concat('world');
var str2 = str.concat('zhangsan', '!');
console.log(str1);// hello world
console.log(str2);// hello zhangsan!
console.log(str);// hello
2馁龟、slice方法崩侠、substring方法、substr方法
slice方法:
第一個(gè)參數(shù)指定子字符串開始位置坷檩,第二個(gè)參數(shù)表示子字符串最后一個(gè)字符后面的位置却音,
如果只有一個(gè)參數(shù)n,返回的是從n-1位置開始到字符串結(jié)尾的字符串
如果兩個(gè)參數(shù)都是整數(shù)矢炼,同為正或同為負(fù)系瓢,第二個(gè)參數(shù)必須必第一個(gè)參數(shù)大,否則返回的是空字符串
如果第一個(gè)參數(shù)是負(fù)數(shù)裸删,第二個(gè)參數(shù)是非負(fù)正數(shù)的時(shí)候八拱,均返回空字符串
如果第一個(gè)參數(shù)是0,第二個(gè)參數(shù)是正數(shù)n涯塔,返回的是從0位置開始到n-1位置結(jié)束的字符串
如果第一個(gè)參數(shù)是0正數(shù)n肌稻,第二個(gè)參數(shù)是負(fù)數(shù)m,返回的是從0或n開始到從右邊數(shù)第m-1位置結(jié)束的字符串
如果兩個(gè)參數(shù)均為負(fù)數(shù)m匕荸、n爹谭,m<n的時(shí)候,返回的是從右邊第|n|+1位置開始到第|m|位置結(jié)束的字符串
var str = 'hello world';
console.log(str.slice(3));// lo world
console.log(str.slice(-1, -3));// 空字符串
console.log(str.slice(3, 1));// 空字符串
console.log(str.slice(-1, 0));// 空字符串
console.log(str.slice(-1, 2));// 空字符串
console.log(str.slice(0, 2));// he
console.log(str.slice(0, -1));// hello worl
console.log(str.slice(1, -3));// ello wo
console.log(str.slice(-3, -1));// rl
console.log(str);// hello world
substring方法:
第一個(gè)參數(shù)指定子字符串開始位置榛搔,第二個(gè)參數(shù)表示子字符串最后一個(gè)字符后面的位置
如果只有一個(gè)參數(shù)n诺凡,返回的是從n-1位置開始到字符串結(jié)尾的字符串
如果兩個(gè)參數(shù)都是整數(shù)m,n践惑,如果第二個(gè)參數(shù)m<0腹泌,會(huì)被轉(zhuǎn)成n=0,截取的結(jié)果是從0到m-1位置的字符串
如果兩個(gè)參數(shù)都是整數(shù)m尔觉,n凉袱,如果n<m,會(huì)被轉(zhuǎn)換成str.substring(n, m);
例如:
var str = 'hello world';
console.log(str.substring(3));// lo world
console.log(str.substring(3, 0));// hel
console.log(str.substring(3, -1));// hel
console.log(str.substring(3, 1));// el
substr方法
第一個(gè)參數(shù)指定子字符串開始位置,第二個(gè)參數(shù)表示返回的字符個(gè)數(shù)
如果只有一個(gè)參數(shù)n专甩,返回的是從n-1位置開始到字符串結(jié)尾的字符串
如果有兩個(gè)參數(shù)m钟鸵,n,如果n<0,返回空字符串涤躲,否側(cè)返回從m-1位置開始的長(zhǎng)度為n的字符串棺耍,如果m+n-1>字符串的長(zhǎng)度減一,則返回的是從m-1位置開始到字符串結(jié)尾的字符串
var str="hello world";
console.log(str.substr(3));//lo world
console.log(str.substr(3,7));//lo worl 7表示返回7個(gè)字符
console.log(str.substr(3,-4));//""空字符串
字符串位置方法
indexOf方法和lastIndexOf方法都是從一個(gè)字符串中搜索給定的子字符串种樱,然后返回子字符串的位置蒙袍,如果沒(méi)有找到,則返回-1
indexOf方法是從字符串的開頭向后搜索子字符串嫩挤,lastIndexOf方法正好相反
這兩個(gè)方法都可以接收兩個(gè)參數(shù):要查找的子字符串和查找的位置
例如:
var str="hello world";
console.log(str.indexOf("o"));//4
console.log(str.lastIndexOf("o"));//7
console.log(str.indexOf("o",6));//7
console.log(str.lastIndexOf("o",6));//4
trim方法
trim方法用來(lái)刪除字符串前后的空格左敌,不會(huì)改變?cè)醋址?br>
例如:
var str=" hello world ";
console.log('('+str.trim()+')');//(hello world)
console.log('('+str+')');//( hello world )
字符串大小寫轉(zhuǎn)換方法
var str="HELLO world";
console.log(str.toLowerCase());//hello world
console.log(str.toUpperCase());//HELLO WORLD
replace方法
var str="cat,bat,sat,fat";
var res=str.replace("at","one");//第一個(gè)參數(shù)是字符串,所以只會(huì)替換第一個(gè)子字符串
console.log(res);//cone,bat,sat,fat
var res1=str.replace(/at/g,"one");//第一個(gè)參數(shù)是正則表達(dá)式俐镐,所以會(huì)替換所有的子字符串
console.log(res1);//cone,bone,sone,fone
split方法
split方法是基于指定的字符矫限,將字符串分割成字符串?dāng)?shù)組,當(dāng)指定的字符為空字符串時(shí)佩抹,將會(huì)分隔整個(gè)字符串
var str="red,blue,green,yellow";
console.log(str.split(","));//["red", "blue", "green", "yellow"]
console.log(str.split(",",2));//["red", "blue"] 第二個(gè)參數(shù)用來(lái)限制數(shù)組大小
console.log(str.split(/[^,]+/));// ["", ",", ",", ",", ""] //第一項(xiàng)和最后一項(xiàng)為空字符串是因?yàn)檎齽t表達(dá)式指定的分隔符出現(xiàn)在了子字符串的開頭叼风,即"red"和"yellow"
//[^...] 不在方括號(hào)內(nèi)的任意字符 只要不是逗號(hào)都是分隔符
字符串模式匹配方法
match方法:只接受一個(gè)參數(shù),由字符串或RegExp對(duì)象指定的一個(gè)正則表達(dá)式
search方法:只接受一個(gè)參數(shù)棍苹,由字符串或RegExp對(duì)象指定的一個(gè)正則表達(dá)式
search方法返回字符串中第一個(gè)匹配項(xiàng)的索引无宿,如果沒(méi)有匹配項(xiàng),返回-1
例如
var str="cat,bat,sat,fat";
var pattern=/.at/;
var matches=str.match(pattern);
console.log(matches.index);//0
console.log(matches[0]);//cat
console.log(pattern.lastIndex);//0
//lastIndex表示開始搜索下一個(gè)匹配項(xiàng)的字符位置枢里,從0算起
var pos=str.search(/at/);
console.log(pos);//1 1表示at字符串在原來(lái)字符串中第一次出現(xiàn)的位置
localeCompare方法
這個(gè)方法用于比較兩個(gè)字符串
1.如果字符串在字母表中應(yīng)該排在字符串參數(shù)之前孽鸡,則返回一個(gè)負(fù)數(shù)
2.如果字符串等于字符串參數(shù),則返回0
3.如果字符串在字母表中應(yīng)該排在字符串參數(shù)之后栏豺,則返回一個(gè)正數(shù)
例如:
var str="yellow";
console.log(str.localeCompare("brick"));//1
console.log(str.localeCompare("yellow"));//0
console.log(str.localeCompare("zoo"));//-1