JS字符串常用方法

String對象屬性

String對象有l(wèi)ength和prototype兩個屬性。

1. length屬性

length在字符串中的應(yīng)用與數(shù)組類似,都是獲取其長度并返回,需要注意的是js中每個中文漢字也只代表一個字符。

var test = 'dasfwdx';
console.log(test.length); // 7

2. prototype屬性

js中幾乎每個對象都有prototype屬性,經(jīng)常被用到的作用是給對象添加屬性或方法,并且添加的屬性或方法在所有實(shí)例中共享。比如常用的給字符串加一個去除兩邊空格的trim方法:

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

String對象方法

1. 操作類方法

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

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

replace()方法
replace()方法用來進(jìn)行字符串替換,接收兩個參數(shù),前者是被替換的子字符串(也可以是正則),后者是用來替換的文本。如果第一個參數(shù)是子字符串或不進(jìn)行全局匹配的正則,那么該方法將只進(jìn)行一次匹配替換。

var test = 'abcdeabcde';
console.log(test.replace('b', '$')); // a$cdeabcde
console.log(test.replace(/b/, '$')); // a$cdeabcde

如果第一個參數(shù)是全局匹配的正則表達(dá)式,則會進(jìn)行多次匹配替換:

var test = 'abcdeabcde';
console.log(test.replace(/b/g, '$')); // a$cdea$cde

split()方法
stringObject.split(separator,howmany)
split()方法用于把一個字符串分割成字符串?dāng)?shù)組,第一個參數(shù)表示參考符,設(shè)置為''則表示將字符串全部分割。也可以用正則來進(jìn)行匹配。
第二個參數(shù)表示返回數(shù)組的最大長度,若不設(shè)置則表示匹配到字符串結(jié)束。

var test = 'abcdeabcdeabcde';
console.log(test.split('c')); // [ab, deab, deab, de]

2. 獲取類方法

charAt()
stringObject.charAt(index)
charAt()用于獲取指定位置的字符串,index表示字符串的索引值,若index不在數(shù)組索引范圍內(nèi),將返回一個空字符串。

var test = 'abcdefg';
console.log(test.charAt(3)); // d
console.log(test.charAt(10)); // 返回空字符串

charCodeAt()
stringObject.charCodeAt(index)
該方法可返回指定位置的字符Unicode編碼,具體使用與charAt()類似。

var test = 'abcdefg';
console.log(test.charCodeAt(3)); // 100

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

console.log(String.fromCharCode(97,98,99,100,101)); // abcde

3. 查找類方法

indexOf()
stringObject.indexOf(searchvalue, fromindex)
該方法用來檢索指定字符串值在字符串中首次出現(xiàn)的位置,searchvalue表示要查找的子字符串,fromindex表示查找的開始位置,省略的話就從開始位置進(jìn)行檢索。

var test = 'abcdefgabcdefg';
console.log(test.indexOf('c')); // 2
console.log(test.indexOf('c',5)); // 9
console.log(test.indexOf('bc')); // 1

lasrIndexOf()
stringObject.lastIndexOf(searchvalue,fromindex)
與indexOf()類似,不過它返回的是指定子字符串最后出現(xiàn)的位置,其檢索順序是從后往前。

var test = 'abcdefgabcdefg';
console.log(test.lastIndexOf('a'));  // 返回7
console.log(test.lastIndexOf('a', 3));   // 返回0 從第索引3的位置往前檢索
console.log(test.lastIndexOf('bc')); // 返回8

search()
stringObject.search(substr)stringObject.search(regexp)
該方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。返回第一個匹配的子字符串的起始位置,若沒有匹配則返回-1.

var test = 'abcdefgabcdefg';
console.log(test.search('a'));  // 返回0
console.log(test.search(/ga/));   // 返回6
console.log(test.search('h')); // 返回-1

match()
stringObject.match(substr)stringObject.match(regexp)
該方法用于在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達(dá)式的匹配。
若果傳入的是子字符串或沒有進(jìn)行全局匹配的正則,那么該方法會從開始位置執(zhí)行一次匹配,如果沒有匹配到結(jié)果就返回null,否則返回一個數(shù)組,數(shù)組的第0個元素存放匹配文本,此外數(shù)組還有兩個對象屬性index和input,分別表示匹配文本的其實(shí)字符串和原字符串。
如果傳入全局匹配的正則,那么就從開始匹配到結(jié)束,如果沒有匹配到結(jié)果則返回null,否則返回一個數(shù)組,數(shù)組中保存所有符合要求的子字符串,并且沒有index和input屬性。

var test = 'ab1cd2ef3ga4bc5de6fg7';
console.log(test.match('h'));  // 返回null
console.log(test.match(/ga/));   // ['ga'],且該數(shù)組帶有index=9與input='ab1cd2ef3ga4bc5de6fg7'的屬性
console.log(test.match(/\d/g)); // [1,2,3,4,5,6,7]

4. 截取類方法

substring()
stringObject.substring(start, end)
該方法是經(jīng)常用的字符串截取方法,接收兩個參數(shù)(不能為負(fù)),分別是要截取的開始位置和結(jié)束位置,返回一個新的字符串,其內(nèi)容是從start處到end-1處的所有字符,即相當(dāng)于前開后閉[start, end)。若end省略,則表示從start一直截取到最后。

var test = 'ab1cd2ef3ga4bc5de6fg7';
console.log(test.substring(2,5));  // 1cd
console.log(test.substring(15));   // de6fg7
console.log(test.substring(-1)); // ab1cd2ef3ga4bc5de6fg7,傳入負(fù)值時會被視為0

slice()
stringObject.slice(start, end)
該方法與substring()類似,區(qū)別在于slice()中的參數(shù)可以為負(fù),表示從尾部開始計算。即-1表示最后一個字符。

var test = 'ab1cd2ef3ga4bc5de6fg7';
console.log(test.slice(2,5));  // 1cd
console.log(test.slice(15));   // de6fg7
console.log(test.slice(10,-1)); // a4bc5de6fg

substr()
stringObject.substr(start, length)
該方法可在字符串中抽取從start為起點(diǎn)的以length為長度的字符,返回值為一個字符串。如果沒有指定length,則表示從start到解為。start可以為負(fù),表示從尾部算起。

var test = 'ab1cd2ef3ga4bc5de6fg7';
console.log(test.substr(2,5));  // 1cd2e
console.log(test.substr(15));   // de6fg7
console.log(test.substr(-4,2)); // 6f
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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