js字符串常用操作

String對象屬性

1、length屬性

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

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

2、prototype屬性

prototype在面向?qū)ο缶幊讨袝?jīng)常用到,用來給對象添加屬性或方法,并且添加的方法或?qū)傩栽谒械膶嵗瞎蚕怼R虼艘渤S脕頂U展js內(nèi)置對象,如下面的代碼給字符串添加了一個去除兩邊空格的方法:

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

String對象方法

1、獲取類方法

(1) charAt()

stringObject.charAt(index)

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

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

(2) charCodeAt()

stringObject.charCodeAt(index)

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

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

(3) fromCharCode()

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

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

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

2、查找類方法

(1) indexOf()

stringObject.indexOf(searchvalue,fromindex)

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

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()類似,它返回的是一個指定的子字符串值最后出現(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()方法用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。它會返回第一個匹配的子字符串的起始位置,如果沒有匹配的,則返回-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)檢索指定的值,或找到一個或多個正則表達式的匹配。

如果參數(shù)中傳入的是子字符串或是沒有進行全局匹配的正則表達式,那么match()方法會從開始位置執(zhí)行一次匹配,如果沒有匹配到結(jié)果,則返回null。否則則會返回一個數(shù)組,該數(shù)組的第0個元素存放的是匹配文本,除此之外,返回的數(shù)組還含有兩個對象屬性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ù)傳入的是具有全局匹配的正則表達式,那么match()從開始位置進行多次匹配,直到最后。如果沒有匹配到結(jié)果,則返回null。否則則會返回一個數(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()是最常用到的字符串截取方法,它可以接收兩個參數(shù)(參數(shù)不能為負值),分別是要截取的開始位置和結(jié)束位置,它將返回一個新的字符串,其內(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,傳入負值時會視為0

(2) slice()

stringObject.slice(start,end)

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

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下標開始的指定數(shù)目的字符。其返回值為一個字符串,包含從 stringObject的start(包括start所指的字符)處開始的length個字符。如果沒有指定 length,那么返回的字符串包含從start到stringObject的結(jié)尾的字符。另外如果start為負數(shù),則表示從字符串尾部開始算起。

var str = 'abcdefg';
console.log(str.substr(1,3))//返回bcd
console.log(str.substr(2))//返回cdefg
console.log(str.substr(-2,4))//返回fg,目標長度較大的話,以實際截取的長度為準

4、其他方法

(1) replace()

stringObject.replace(regexp/substr,replacement)

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

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

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

如果第一個參數(shù)傳入的全局匹配的正則表達式,那么replace()將會對符合條件的子字符串進行多次替換,最后返回經(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()方法用于把一個字符串分割成字符串數(shù)組。第一個參數(shù)separator表示分割位置(參考符),第二個參數(shù)howmany表示返回數(shù)組的允許最大長度(一般情況下不設(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"]

也可以用正則表達式來進行分割--

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 ='Hello World';
console.log(str.toLowerCase());//返回hello world
console.log(str.toUpperCase());//返回HELLO WORLD
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容