js中字符串的常用方法(包含es6擴(kuò)展)

一客年、字符方法
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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彬碱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奥洼,更是在濱河造成了極大的恐慌巷疼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵奖,死亡現(xiàn)場(chǎng)離奇詭異嚼沿,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瓷患,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門骡尽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人擅编,你說(shuō)我怎么就攤上這事攀细。” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵辨图,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我肢藐,道長(zhǎng)故河,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任吆豹,我火速辦了婚禮鱼的,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痘煤。我一直安慰自己凑阶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布衷快。 她就那樣靜靜地躺著宙橱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蘸拔。 梳的紋絲不亂的頭發(fā)上师郑,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音调窍,去河邊找鬼宝冕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛邓萨,可吹牛的內(nèi)容都是我干的地梨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缔恳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宝剖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起歉甚,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诈闺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后铃芦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雅镊,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年刃滓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仁烹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咧虎,死狀恐怖卓缰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤征唬,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布捌显,位于F島的核電站,受9級(jí)特大地震影響总寒,放射性物質(zhì)發(fā)生泄漏扶歪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一摄闸、第九天 我趴在偏房一處隱蔽的房頂上張望善镰。 院中可真熱鬧,春花似錦年枕、人聲如沸炫欺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)品洛。三九已至,卻和暖如春摩桶,著一層夾襖步出監(jiān)牢的瞬間毫别,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工典格, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岛宦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓耍缴,卻偏偏與公主長(zhǎng)得像砾肺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子防嗡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容