0003.js字串操作

來源:互聯網
上載者:User

標籤:

通過 + 串連符拼接字串:

var str1 = "hello";str1 = str1 + " javaScript";document.write(str1);

或者:

var str1 = "hello";str1 += " javaScript";document.write(str1);

輸出:hello javaScript

要在字串中添加分行符號,需要使用逸出字元"\n",但這種方法只能用在像警告、確認對話方塊之類的情況下。

如果將這段文本作為HTML內容呈現,就無效了,此時用"<br>"代替它

js concat()方法:

string.concat(string2, string3[, ..., stringN]);
var str2 = "hello".concat(" javaScript"," world");document.write(str2);

 這種拼接的方式不如直接用加號拼接方便;

js 字串長度length屬性:

返回字元個數,而不是位元組長度;

var str = "kitty貓";document.write(str.length);

返回長度6

js substr(),用於返回一個從指定位置開始的指定長度的子字串。

文法:stringObject.substr(start [, length ])

start   必需。所需的子字串的起始位置。字串中的第一個字元的索引為 0。
length 可選。在返回的子字串中應包括的字元個數。

說明

如果start為負數,則start=str.length+start。start大於字串最後一個字串的索引將返回Null 字元串。

如果 length 為 0 或負數,將返回一個Null 字元串。

如果沒有指定length參數或者length大於字串長度,則子字串將延續到stringObject的最後。

兩參數為小數也是被允許的採用去小數部分操作,使返回結果不至於報錯,但實際上沒有意義,索引和長度不會存在小數的情況;

js substring(),substring 方法用於提取字串中介於兩個指定下標之間的字元

開始和結束的位置,從零開始的索引

參數     描述

start     必需。一個非負的整數,規定要提取的子串的第一個字元在 stringObject 中的位置。

stop     可選。一個非負的整數,比要提取的子串的最後一個字元在 stringObject 中的位置多 1。如果省略該參數,那麼返回的子串會一直到字串的結尾。

返回一個新的字串,該字串值包含 stringObject 的一個子字串,其內容是從 start 處到 stop-1 處的所有字元,其長度為 stop 減 start。

substring 方法返回的子串包括 start 處的字元,但不包括 end 處的字元。
如果 start 與 end 相等,那麼該方法返回的就是一個空串(即長度為 0 的字串)。
如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個參數。
如果 start 或 end 為負數,那麼它將被替換為 0。(end為負數那麼,替換成0,那麼就是substr(0,startvalue))

兩參數為小數也是被允許的採用去小數部分操作,使返回結果不至於報錯,但實際上沒有意義,索引不會存在小數的情況;

js slice()

string.slice(start, end) 返回從start位置開始到end-1位置的的子字串;

start大於字串長度返回Null 字元串;

end大於字串長度返回從start到字串結尾的子串;

start和end都可以為負數,意為從字串最後倒著數,最後一個字元為-1;

start和end為負數都應先從字串最後數起確定自己的索引;

如果end的索引小於start的索引則返回Null 字元串;

兩參數為小數也是被允許的採用去小數部分操作,使返回結果不至於報錯,但實際上沒有意義,索引不會存在小數的情況;

js toLowerCase()和toUpperCase()

toLowerCase()將字串轉為全小寫;

toUpperCase()將字串轉為全大寫;

不影響字串本身;

var str = "ShanGHai";document.write(str.toLowerCase() + "<br>");document.write(str.toUpperCase() + "<br>");document.write(str);

shanghai
SHANGHAI
ShanGHai

js indexOf()

返回某個指定的字串在字串中首次出現的位置(從左向右)。包含子串返回下標,不包含返回-1;

js lastIndexOf()

返回從右向左出現某個字元或字串的首個字元索引值;

js charAt(index) 返回某個索引處的字元;

js charCodeAt(index) 返回某個索引處字元的unicode值;

js String.fromCharCode(index1,index2...indexn)

var str = String.fromCharCode(72, 101, 108, 108, 111); document.write(str);

輸出Hello

上面的length屬性可以確定字串的字元長度;

當js校正時,需要限定字元長度,必鬚根據位元組來統計;

匹配中文字元的Regex: [\u4e00-\u9fa5]

匹配雙位元組字元(包括漢字在內):[^\x0000-\x00ff]

下面的位元組長度統計來自於:星期八的Blog
內容正確性未測試;

str.charCodeAt(i)>255 的字元佔兩個字元;

 1 var lenFor = function(str){ 2   var byteLen=0,len=str.length; 3   if(str){ 4     for(var i=0; i<len; i++){ 5       if(str.charCodeAt(i)>255){ 6         byteLen += 2; 7       } 8       else{ 9         byteLen++;10       }11     }12     return byteLen;13   }14   else{15     return 0;16   }17 }

Regex檢測字串的位元組長度:

var lenReg = function(str){  return str.replace(/[^x00-xFF]/g,‘**‘).length;}

用Regex檢測所用的時間竟然是for迴圈的兩倍!!!!

這個好使---
function getBytesLength(str) {
// 在GBK編碼裡,除了ASCII字元,其它都佔兩個字元寬
return str.replace(/[^\x00-\xff]/g, ‘xx‘).length;

0003.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.