JavaScript String對象

來源:互聯網
上載者:User

JavaScript String對象
1. 介紹   String 對象,對字串進行操作,如:截取一段子串、尋找字串/字元、轉換大小寫等等。 2. 定義方式 2.1 new String(Value) 建構函式:返回一個內容為Value的String對象參數: ①value {String} :字串 傳回值: {String對象} 返回一個內容為Value的String對象 樣本:  var demoStr = new String('abc');console.log(typeof demoStr); // => objectconsole.log(demoStr); // => abc  2.2 直接賦值(推薦)樣本:  var demoStr = 'abc';console.log(typeof demoStr); // stringconsole.log(demoStr); // => abc  3. 執行個體屬性 3.1 length :返回字串中的字元數 var s = 'abc';console.log(s.length); // => 3console.log('新年快樂'.length); // => 4 :一個中文字元也計算為1個數量console.log(''.length); // => 0 :Null 字元串返回0  4. 執行個體方法 注意:字串的執行個體方法不會改變字串的本身,只返回操作後的結果。 4.1 charAt(index) :返回一個字串中指定位置的字元,編號從0開始,若傳入個不存在的數值,就返回Null 字元串參數: ①index {int} :位置索引,從0開始計算 傳回值: {string} 返回一個字串中指定位置的字元;若傳入個不存在的位置數值,返回一個Null 字元串 樣本:  var s = 'abc';console.log(s.charAt(1)); // => b :返回位置為1的字元console.log(s); // => 不影響原來的數組console.log(s.charAt(5)); // => '' :擷取一個不存在位置的字元,返回一個長度為0的Null 字元串  4.2 charCodeAt(index) :返回一個字串中指定位置字元的Unicode編碼參數: ①index {int} :位置索引,從0開始計算 傳回值: {number}  返回一個字串中指定位置字元的Unicode編碼;若傳入個不存在的位置數值,返回NaN 樣本:  var s = 'abc';console.log(s.charCodeAt(0)); // => 98 :字元b的Unicode編碼console.log(s.charCodeAt(5)); // => NaN :擷取一個不存在位置的字元,返回NaN  4.3 concat(value1,value2 ... valueN) :串連一個或多個字串,並返回串連後的字串參數: ①value1,value2 ... valueN {string} :一個或多個字串 傳回值: {string}  返回串連後的字串 樣本:  var s = 'abc';console.log(s.concat('d')); // => abcdconsole.log(s); // => abc :不影響原先的字串console.log(s.concat('d', 'e')); // => abcde  4.4 indexOf(value , |startPosition ) :在執行個體中從前往後尋找一個字串或字元,並返回找到的位置(從0開始計數)。若未找到,返回-1參數: ①value  {string} :尋找的字串 ②startPosition {int} 可選 :開始尋找的起始位置,預設從位置0開始尋找 傳回值: {int}  返回找到的位置(從0開始計數)。若未找到,返回-1 樣本:  var s = 'abc';console.log(s.indexOf('b')); // => 1console.log(s.indexOf('d')); // => -1 :未找到console.log(s.indexOf('b', 2)); // => -1 :從位置2(第3個字元處)開始尋找  4.5 lastIndexOf(value , |startPosition ) :在執行個體中從後往前開始尋找一個字串或字元,並返回找到的位置(從0開始計數)。若未找到,返回-1參數: ①value  {string} :尋找的字串 ②startPosition {int} 可選 :開始尋找的起始位置,預設從最後開始尋找 傳回值: {int}  返回找到的位置(從0開始計數)。若未找到,返回-1 樣本:  var s = 'abcabc';console.log(s.lastIndexOf('a')); // => 3 :從後往前尋找console.log(s.lastIndexOf('d')); // => -1 :未找到返回-1console.log(s.lastIndexOf('a', 2)); // => 0 :從位置2(第3個字元處)開始往前尋找  4.6 localeCompare(value) :執行個體與參數進行比較,返回比較結果參數: ①value  {string} :需比較的字串 傳回值:   0 :執行個體比參數大   1 :執行個體與參數相等   -1 :執行個體比參數小 樣本:  var s='abc';console.log(s.localeCompare('ab')); // => 1 :執行個體比參數大console.log(s.localeCompare('abc')); // => 0 :執行個體與參數相等console.log(s.localeCompare('abd')); // => -1 :執行個體比參數小   4.7 match(regexp) :使用Regex進行匹配尋找參數: ①regexp {regexp} :Regex,eg:/\d+/ 傳回值: 根據Regex是否帶屬性'g',返回不同的結果;若沒匹配,就返回 {null}: ①Regex不帶屬性'g',執行一次匹配,返回{單個匹配}結果對象,對象包含以下屬性:   數組序號:表示匹配結果,0為匹配文本,1為從做到右第1個圓括弧匹配結果,2為第二個圓括弧,依此類推   index屬性:表示匹配文本在匹配源的開始位置   input屬性:表示匹配源 ②Regex帶屬性'g',執行全域匹配,找到字串所有匹配對象,返回一個{字串數組}:數組元素包含string中的每一個匹配對象,不包含Regex括弧內的字串,也不提供index和input屬性。 樣本:  // 1.單個匹配var s = 'a1b2c3d4';var mc = s.match(/\d+/); // => 擷取第一個正則匹配的結果if (mc != null) {    console.log(mc.index); // => 1 :匹配結果在匹配源的起始位置    console.log(mc.input) // => a1b2c3d4 :匹配源    console.log(mc[0]); // => 1 :擷取匹配到的結果} // 2.全域匹配var mcArray = s.match(/\d+/g); // => 擷取全部正則匹配的數字if (mcArray != null) {    for (var i = 0,len=mcArray.length; i < len; i++) {        var mc=mcArray[i];        console.log(mc); // => 1,2,3,4 :擷取匹配到的結果    }} // 3.帶括弧的匹配s = 'a1b2c3d4';mc = s.match(/[a-z]([1-9])/); // => 擷取第一個正則匹配的結果if (mc != null) {    console.log(mc.index); // => 0 :匹配結果在匹配源的起始位置    console.log(mc.input) // => a1b2c3d4 :匹配源    console.log(mc[0]); // => a1 :序號0表示匹配到的結果    console.log(mc[1]); // => 1 :序號1表示第一個括弧內的子匹配結果}  4.8  replace(regexp, replaceStr) :替換Regex匹配的子串,並返回替換後的字串參數: ①regexp {regexp} :Regex。eg:/\d+/ ②replaceStr {string | function} : 1)若是字串,表示替換的字串,匹配到字串都替換成此字串; 字串中的$字元有特殊的含義: $1,$2 ... $99 :表示①參從左至右圓括弧的匹配子項 $& :表示整個①參匹配的子項 $$ :貨幣符號 2)若是函數,表示每個匹配結果都調用此函數,函數的唯一參數為匹配結果,並返回一個替換結果。 傳回值: {string} 返回一個替換後的字串 樣本:  var oldStr = 'a1b2c3d4'; // 1.正則匹配到【所有】數字,替換成:','逗號var newStr = oldStr.replace(/\d+/g, ',');console.log(newStr); // => a,b,c,d, // 2.正則匹配到【所有】數字,替換成:匹配結果 + ','逗號newStr = oldStr.replace(/\d+/g, '$&,');console.log(newStr); // => a1,b2,c3,d4, // 3.正則匹配到【所有】數字,每個匹配結果都調用函數,並返回替換後的結果newStr = oldStr.replace(/\d+/g, function (word) {    if (word % 2 == 0) {        return '偶';    }    return '奇';});console.log(newStr); // => a奇b偶c奇d偶  4.9 search(regexp) :返回尋找Regex第一個匹配的位置參數: ①regexp {regexp} :Regex。eg:/\d+/ 傳回值: {int} 返回第一個匹配的結果的位置;若沒找到匹配結果返回-1 樣本:  console.log( 'abcd'.search(/\d+/) ); // => -1 :沒有找到數字console.log( 'abcd1234'.search(/\d+/) ); // => 4 :位置序號為4,返回第一個數位位置  4.10  slice(start, |end):返回從字串start位置到end前一個位置的子串參數: ①start {int} :子串提取的開始位置索引(包括此位置的字元)。       若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。 ②end {int} 可選:子串提取的結束位置索引(不包括此位置的字元)。       若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。       若省略此參數,返回從start位置到結束的所有字元。 注意: 子串的提取順序是從左到有,若start索引位置大於end索引位置,將返回一個Null 字元串。 傳回值: {string} 返回從字串start位置到end前一個位置的子串。 樣本:  var s = 'abcdefg';console.log( s.slice(1) ); // bcdefg :省略end參數,結束位置為末尾console.log( s.slice(1, 3) ); // bc :返回從位置序號1到位置序號2(end前一個位置)的子串console.log( s.slice(-3) ); // efg :返回從倒數第三個開始到末尾的所有字元console.log( s.slice(-3, -1) ); // ef :返回從倒數第三個開始到第二個(end前一個位置)的所有字元  4.11 split(delimiter, |arrayLength) :將字串按照某種分隔字元切分成一個由字串組成的數組並返回參數: ①delimiter {regexp | string} :指定的分隔字元,可以為Regex或字串。 ②arrayLength {int} 可選 :分割數組的長度。若省略,返回所有分割的子串。 注意: 若分隔字元在字串的第一個或最後一個,將添加一個Null 字元串到返回的數組。 傳回值: { string[] } 返回一個由字串組成的數組。 樣本:  console.log( 'a,b,c,d,e'.split(',') ); // => ["a", "b", "c", "d", "e"]console.log( ',a,b,c,d,e,'.split(',') ); // => ["", "a", "b", "c", "d", "e", ""] :分隔字元在最前或最後面,會添加一個Null 字元串console.log( 'a,b,c,d,e'.split(',',3) ); // => ["a", "b", "c"] :返回前3個分割的子串console.log( 'a1b2c3d4e'.split(/\d/) ); // => ["a", "b", "c", "d", "e"] :將數字來做為分隔字元  4.12 substr(start, |wordLength):返回從字串start位置開始計算到wordLength個長度的子串參數: ①start {int} :子串提取的開始位置索引(包括此位置的字元)。       若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。 ②wordLength {int} 可選 :提取字元的長度。若省略此參數,返回從start位置到結束的所有字元。 傳回值: {string} 返回提取的字串 樣本: ar s = 'abcdefg';onsole.log( s.substr(0) ); // =>  abcdefg :省略第二個參數,返回從位置序號0開始,一直到最後的字元onsole.log( s.substr(0, 3) ); // => abc :返回從位置序號0開始,計數3個字元onsole.log( s.substr(2, 4) ); // => cdef :返回從位置序號2開始,計數4個字元onsole.log( s.substr(-2, 3) ); // fg :返回從倒數第二個字串開始,計數3個(超過字元長度,就只返回可統計的字元)  4.13 substring(start, |end) :返回從字串start位置到end前一個位置的子串參數: ①start {int} :子串提取的開始位置索引(包括此位置的字元)。數字不能為負數,若為負數按0來處理 ②end {int} 可選:子串提取的結束位置索引(不包括此位置的字元)。數字不能為負數,若為負數按0來處理 傳回值: {string} 返回從字串start位置到end前一個位置的子串。 樣本:  var s = 'abcdefg';console.log( s.substring(0) ); // =>  abcdefg :省略end參數,返回從位置序號0開始,一直到最後的字元console.log( s.substring(0, 3) ); // => abc :返回從位置序號0開始到位置序號2(②參的前一個)的字元console.log( s.substring(2, 4) ); // => cd :返回從位置序號2開始到位置序號3(②參的前一個)的字元console.log( s.substring(-3, 3) ); // abc :參數若為負,就按數字0來處理,所以此參數實際返回位置序號0到位置序號3的字元  4.14 toUpperCase() :將字串轉換為大寫並返回4.15 toUpperCase() :將字串轉換為小寫並返回4.16 trim() :移除字串開頭和結尾處的空白字元並返回 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.