javascript中字串常用操作總結、JS字串操作大全

來源:互聯網
上載者:User

標籤:

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

String對象屬性

(1) length屬性

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

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

(2) prototype屬性

prototype在物件導向編程中會經常用到,用來給對象添加屬性或方法,並且添加的方法或屬性在所有的執行個體上共用。因此也常用來擴充js內建對象,如下面的代碼給字串添加了一個去除兩邊空格的方法:

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

String對象方法

1.擷取類方法

(1) charAt()

stringObject.charAt(index)

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

var str = ‘abcde‘;console.log(str.charAt(2));     //返回cconsole.log(str.charAt(8));     //返回Null 字元串

(2) charCodeAt()

stringObject.charCodeAt(index)

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

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

(3) fromCharCode()

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

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

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

2.尋找類方法

(1) indexOf()

stringObject.indexOf(searchvalue,fromindex)

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

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

(2) lastIndexOf()方法

stringObject.lastIndexOf(searchvalue,fromindex)

lastIndexOf()文法與indexOf()類似,它返回的是一個指定的子字串值最後出現的位置,其檢索順序是從後向前。

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

(3) search()方法

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

search()方法用於檢索字串中指定的子字串,或檢索與Regex相匹配的子字串。它會返回第一個匹配的子字串的起始位置,如果沒有匹配的,則返回-1。

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

(4) match()方法

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

match()方法可在字串內檢索指定的值,或找到一個或多個Regex的匹配。

如果參數中傳入的是子字串或是沒有進行全域匹配的Regex,那麼match()方法會從開始位置執行一次匹配,如果沒有匹配到結果,則返回null。否則則會返回一個數組,該數組的第0個元素存放的是匹配文本,除此之外,返回的數組還含有兩個對象屬性index和input,分別表示匹配文本的起始字元索引和stringObject 的引用(即原字串)。

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

如果參數傳入的是具有全域匹配的Regex,那麼match()從開始位置進行多次匹配,直到最後。如果沒有匹配到結果,則返回null。否則則會返回一個數組,數組中存放所有符合要求的子字串,並且沒有index和input屬性。

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

3.截取類方法

(1) substring()

stringObject.substring(start,end)

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

var str = ‘abcdefg‘;console.log(str.substring(1, 4));   //返回bcdconsole.log(str.substring(1));  //返回bcdefgconsole.log(str.substring(-1)); //返回abcdefg,傳入負值時會視為0

(2) slice()

stringObject.slice(start,end)

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

var str = ‘abcdefg‘;console.log(str.slice(1, 4));   //返回bcdconsole.log(str.slice(-3, -1)); //返回efconsole.log(str.slice(1, -1));  //返回bcdefconsole.log(str.slice(-1, -3)); //返回Null 字元串,若傳入的參數有問題,則返回空

(3) substr()

stringObject.substr(start,length)

substr()方法可在字串中抽取從start下標開始的指定數目的字元。其傳回值為一個字串,包含從 stringObject的start(包括start所指的字元)處開始的length個字元。如果沒有指定 length,那麼返回的字串包含從start到stringObject的結尾的字元。另外如果start為負數,則表示從字串尾部開始算起。

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

4.其他方法

(1) replace()方法

stringObject.replace(regexp/substr,replacement)

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

如果第一個參數傳入的是子字串或是沒有進行全域匹配的Regex,那麼replace()方法將只進行一次替換(即替換最前面的),返回經過一次替換後的結果字串。

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

如果第一個參數傳入的全域匹配的Regex,那麼replace()將會對合格子字串進行多次替換,最後返回經過多次替換的結果字串。

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

(2) split()方法

stringObject.split(separator,howmany)

split()方法用於把一個字串分割成字串數組。第一個參數separator表示分割位置(參考符),第二個參數howmany表示返回數組的允許最大長度(一般情況下不設定)。

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()方法可以把字串中的大寫字母轉換為小寫,toUpperCase()方法可以把字串中的小寫字母轉換為大寫。

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

javascript中字串常用操作總結、JS字串操作大全

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.