西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)javascript|JQuery → javascript中字符串常用操作總結(jié)、JS字符串操作大全

javascript中字符串常用操作總結(jié)、JS字符串操作大全

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2013/8/24 12:04:28字體大。A-A+

作者:西西點(diǎn)擊:4746次評(píng)論:0次標(biāo)簽: 字符串

  • 類型:電子教程大小:9.5M語言:中文 評(píng)分:8.0
  • 標(biāo)簽:
立即下載

字符串的操作在js中非常頻繁,也非常重要。以往看完書之后都能記得非常清楚,但稍微隔一段時(shí)間不用,便會(huì)忘得差不多,記性不好是硬傷啊。。。今天就對(duì)字符串的一些常用操作做個(gè)整理,一者加深印象,二者方便今后溫習(xí)查閱。

String對(duì)象屬性

(1) length屬性

length算是字符串中非常常用的一個(gè)屬性了,它的功能是獲取字符串的長(zhǎng)度。當(dāng)然需要注意的是js中的中文每個(gè)漢字也只代表一個(gè)字符,這里可能跟其他語言有些不一樣。


var str = 'abc';
console.log(str.length);


(2) prototype屬性

prototype在面向?qū)ο缶幊讨袝?huì)經(jīng)常用到,用來給對(duì)象添加屬性或方法,并且添加的方法或?qū)傩栽谒械膶?shí)例上共享。因此也常用來擴(kuò)展js內(nèi)置對(duì)象,如下面的代碼給字符串添加了一個(gè)去除兩邊空格的方法:


String.prototype.trim = function(){
    return this.replace(/^\s*|\s*$/g, '');
}


String對(duì)象方法

1.獲取類方法

(1) charAt()


stringObject.charAt(index)


charAt()方法可用來獲取指定位置的字符串,index為字符串索引值,從0開始到string.leng – 1,若不在這個(gè)范圍將返回一個(gè)空字符串。如:


var str = 'abcde';
console.log(str.charAt(2));     //返回c
console.log(str.charAt(8));     //返回空字符串


(2) charCodeAt()


stringObject.charCodeAt(index)


charCodeAt()方法可返回指定位置的字符的Unicode編碼。charCodeAt()方法與charAt()方法類似,都需要傳入一個(gè)索引值作為參數(shù),區(qū)別是前者返回指定位置的字符的編碼,而后者返回的是字符子串。


var str = 'abcde';
console.log(str.charCodeAt(0));     //返回97


(3) fromCharCode()


String.fromCharCode(numX,numX,…,numX)


fromCharCode()可接受一個(gè)或多個(gè)Unicode值,然后返回一個(gè)字符串。另外該方法是String 的靜態(tài)方法,字符串中的每個(gè)字符都由單獨(dú)的數(shù)字Unicode編碼指定。


String.fromCharCode(97, 98, 99, 100, 101)   //返回abcde


2.查找類方法

(1) indexOf()


stringObject.indexOf(searchvalue,fromindex)


indexOf()用來檢索指定的字符串值在字符串中首次出現(xiàn)的位置。它可以接收兩個(gè)參數(shù),searchvalue表示要查找的子字符串,fromindex表示查找的開始位置,省略的話則從開始位置進(jìn)行檢索。


var str = 'abcdeabcde';
console.log(str.indexOf('a'));  // 返回0
console.log(str.indexOf('a', 3));   // 返回5
console.log(str.indexOf('bc')); // 返回1


(2) lastIndexOf()方法


stringObject.lastIndexOf(searchvalue,fromindex)


lastIndexOf()語法與indexOf()類似,它返回的是一個(gè)指定的子字符串值最后出現(xiàn)的位置,其檢索順序是從后向前。


var str = 'abcdeabcde';
console.log(str.lastIndexOf('a'));  // 返回5
console.log(str.lastIndexOf('a', 3));   // 返回0 從第索引3的位置往前檢索
console.log(str.lastIndexOf('bc')); // 返回6


(3) search()方法


stringObject.search(substr) 
stringObject.search(regexp)


search()方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。它會(huì)返回第一個(gè)匹配的子字符串的起始位置,如果沒有匹配的,則返回-1。


var str = 'abcDEF';
console.log(str.search('c'));   //返回2
console.log(str.search('d'));   //返回-1
console.log(str.search(/d/i));  //返回3


(4) match()方法


stringObject.match(substr) 
stringObject.match(regexp)


match()方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。

如果參數(shù)中傳入的是子字符串或是沒有進(jìn)行全局匹配的正則表達(dá)式,那么match()方法會(huì)從開始位置執(zhí)行一次匹配,如果沒有匹配到結(jié)果,則返回null。否則則會(huì)返回一個(gè)數(shù)組,該數(shù)組的第0個(gè)元素存放的是匹配文本,除此之外,返回的數(shù)組還含有兩個(gè)對(duì)象屬性index和input,分別表示匹配文本的起始字符索引和stringObject 的引用(即原字符串)。


var str = '1a2b3c4d5e';
console.log(str.match('h'));    //返回null
console.log(str.match('b'));    //返回["b", index: 3, input: "1a2b3c4d5e"]
console.log(str.match(/b/));    //返回["b", index: 3, input: "1a2b3c4d5e"]


如果參數(shù)傳入的是具有全局匹配的正則表達(dá)式,那么match()從開始位置進(jìn)行多次匹配,直到最后。如果沒有匹配到結(jié)果,則返回null。否則則會(huì)返回一個(gè)數(shù)組,數(shù)組中存放所有符合要求的子字符串,并且沒有index和input屬性。


var str = '1a2b3c4d5e';
console.log(str.match(/h/g));   //返回null
console.log(str.match(/\d/g));  //返回["1", "2", "3", "4", "5"]


3.截取類方法

(1) substring()


stringObject.substring(start,end)


substring()是最常用到的字符串截取方法,它可以接收兩個(gè)參數(shù)(參數(shù)不能為負(fù)值),分別是要截取的開始位置和結(jié)束位置,它將返回一個(gè)新的字符串,其內(nèi)容是從start處到end-1處的所有字符。若結(jié)束參數(shù)(end)省略,則表示從start位置一直截取到最后。


var str = 'abcdefg';
console.log(str.substring(1, 4));   //返回bcd
console.log(str.substring(1));  //返回bcdefg
console.log(str.substring(-1)); //返回abcdefg,傳入負(fù)值時(shí)會(huì)視為0


(2) slice()


stringObject.slice(start,end)


slice()方法與substring()方法非常類似,它傳入的兩個(gè)參數(shù)也分別對(duì)應(yīng)著開始位置和結(jié)束位置。而區(qū)別在于,slice()中的參數(shù)可以為負(fù)值,如果參數(shù)是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個(gè)字符。


var str = 'abcdefg';
console.log(str.slice(1, 4));   //返回bcd
console.log(str.slice(-3, -1)); //返回ef
console.log(str.slice(1, -1));  //返回bcdef
console.log(str.slice(-1, -3)); //返回空字符串,若傳入的參數(shù)有問題,則返回空


(3) substr()


stringObject.substr(start,length)


substr()方法可在字符串中抽取從start下標(biāo)開始的指定數(shù)目的字符。其返回值為一個(gè)字符串,包含從 stringObject的start(包括start所指的字符)處開始的length個(gè)字符。如果沒有指定 length,那么返回的字符串包含從start到stringObject的結(jié)尾的字符。另外如果start為負(fù)數(shù),則表示從字符串尾部開始算起。


var str = 'abcdefg';
console.log(str.substr(1, 3))   //返回bcd
console.log(str.substr(2))  //返回cdefg
console.log(str.substr(-2, 4))  //返回fg,目標(biāo)長(zhǎng)度較大的話,以實(shí)際截取的長(zhǎng)度為準(zhǔn)


4.其他方法

(1) replace()方法


stringObject.replace(regexp/substr,replacement)


replace()方法用來進(jìn)行字符串替換操作,它可以接收兩個(gè)參數(shù),前者為被替換的子字符串(可以是正則),后者為用來替換的文本。

如果第一個(gè)參數(shù)傳入的是子字符串或是沒有進(jìn)行全局匹配的正則表達(dá)式,那么replace()方法將只進(jìn)行一次替換(即替換最前面的),返回經(jīng)過一次替換后的結(jié)果字符串。


var str = 'abcdeabcde';
console.log(str.replace('a', 'A'));
console.log(str.replace(/a/, 'A'));


如果第一個(gè)參數(shù)傳入的全局匹配的正則表達(dá)式,那么replace()將會(huì)對(duì)符合條件的子字符串進(jìn)行多次替換,最后返回經(jīng)過多次替換的結(jié)果字符串。


var str = 'abcdeabcdeABCDE';
console.log(str.replace(/a/g, 'A'));    //返回AbcdeAbcdeABCDE
console.log(str.replace(/a/gi, '$'));   //返回$bcde$bcde$BCDE


(2) split()方法


stringObject.split(separator,howmany)


split()方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。第一個(gè)參數(shù)separator表示分割位置(參考符),第二個(gè)參數(shù)howmany表示返回?cái)?shù)組的允許最大長(zhǎng)度(一般情況下不設(shè)置)。


var str = 'a|b|c|d|e';
console.log(str.split('|'));    //返回["a", "b", "c", "d", "e"]
console.log(str.split('|', 3)); //返回["a", "b", "c"]
console.log(str.split('')); //返回["a", "|", "b", "|", "c", "|", "d", "|", "e"]


也可以用正則來進(jìn)行分割


var str = 'a1b2c3d4e';
console.log(str.split(/\d/)); //返回["a", "b", "c", "d", "e"]


(3) toLowerCase()和toUpperCase()


stringObject.toLowerCase() 
stringObject.toUpperCase()


toLowerCase()方法可以把字符串中的大寫字母轉(zhuǎn)換為小寫,toUpperCase()方法可以把字符串中的小寫字母轉(zhuǎn)換為大寫。


var str = 'JavaScript';
console.log(str.toLowerCase()); //返回javascript
console.log(str.toUpperCase()); //返回JAVASCRIPT


    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)