js獲取字符串長(zhǎng)度的方法 用JS怎樣才能正確的得到字符串的長(zhǎng)度?
用JS怎樣才能正確的得到字符串的長(zhǎng)度?// GBK字符集實(shí)際長(zhǎng)度計(jì)算function getStrLeng(str){ var realLength = 0 var len = str.length
用JS怎樣才能正確的得到字符串的長(zhǎng)度?
// GBK字符集實(shí)際長(zhǎng)度計(jì)算function getStrLeng(str){ var realLength = 0 var len = str.length var charCode = -1 for(var i = 0 i = 0 && charCode
// UTF8字符集實(shí)際長(zhǎng)度計(jì)算function getStrLeng(str){ var realLength = 0 var len = str.length var charCode = -1 for(var i = 0 i = 0 && charCode
在JS中字符串的長(zhǎng)度不分中英文字符, 每一個(gè)字符都算一個(gè)長(zhǎng)度,這跟PHP里的strlen()函數(shù)就不太一樣。PHP里的strlen()函數(shù)根據(jù)字符集把GBK的中文每個(gè)2累加,把UTF-8的中文字符每個(gè)按3累加。主要是為了匹配數(shù)據(jù)庫(kù)的長(zhǎng)度范圍內(nèi),比如GBK的數(shù)據(jù)庫(kù)某字段是varchar(10),那么就相當(dāng)于5個(gè)漢字長(zhǎng)度,一個(gè)漢字等于兩個(gè)字母長(zhǎng)度。如果是UTF8的數(shù)據(jù)庫(kù)則是每個(gè)漢字長(zhǎng)度為3。
js字符串最多存儲(chǔ)多少字節(jié)?
JS字符串的長(zhǎng)度受到下標(biāo)限制。
理論最大長(zhǎng)度是2^53-1(即js中可表達(dá)的最大安全整數(shù))。2^53是多大呢?大約9PB。根據(jù)統(tǒng)計(jì),中國(guó)2014年所有出版物(不計(jì)復(fù)本)不到2000億字,也就是400GB而已。按此推算,不要說(shuō)存一個(gè)txt了,中國(guó)自有甲骨文以來(lái)所有的書(shū)、各類出版物字?jǐn)?shù)加在一起估計(jì)也不可能超過(guò)100TB,也就是0.1PB。當(dāng)然啦,實(shí)際引擎是不可能允許分配那么大的字符串的,你的電腦也沒(méi)那么大存儲(chǔ)不是。V8的heap上限只有2GB不到,允許分配的單個(gè)字符串大小上限更只有大約是512MB不到。JS字符串是UTF16編碼保存,所以也就是2.68億個(gè)字符。FF大約也是這個(gè)數(shù)字。