欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js處理包含中文的字符串實例

 更新時間:2017年10月11日 08:48:12   作者:Dantis·Deng  
下面小編就為大家?guī)硪黄猨s處理包含中文的字符串實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

場景:

js中String類型自帶的屬性length獲取的是字符串的字符數(shù)目,但是前端經(jīng)常會需要限制字符串的顯示長度,一個中文字符又大概占兩個英文小寫字符的顯示位置,所以中英文混合的情況下用length值來判斷顯示長度往往并不正確。

常規(guī)的解決辦法是遍歷字符串,中文字符計長度2,非中文字符計長度1,通過新計算出來長度總和來限制字符串的顯示長度??创a↓↓↓

var Tools ={
 //是否包含中文
 hasZh: function(str){
  for(var i = 0;i < str.length; i++)
  {
   if(str.charCodeAt(i) > 255) //如果是漢字,則字符串長度加2
    return true;
   return false;
  }
 },
 //重新計算長度,中文+2,英文+1
 getlen: function(str){
  var strlen = 0;
  for(var i = 0;i < str.length; i++)
  {
   if(str.charCodeAt(i) > 255) //如果是漢字,則字符串長度加2
    strlen += 2;
   else
    strlen++;
  }
  return strlen;
 },
 //限制長度
 limitlen: function(str, len){
  var result = "";
  var strlen = 0;
  for(var i = 0;i < str.length; i++)
  {
   if(str.charCodeAt(i) > 255) //如果是漢字,則字符串長度加2
    strlen += 2;
   else
    strlen++;

   result += str.substr(i,1);

   if(strlen >= len){
    break;
   }
  }
  return result;
 }
}

這種方法的原理是根據(jù)中英文的unicode編碼范圍不同來判斷的,中文占2個字節(jié),英文占1個字節(jié),所以中文的unicode編碼值肯定大于2^8-1=255。

上述方法可以更嚴(yán)謹(jǐn)一點(diǎn):就是考慮unicode編碼范圍,具體的范圍可以戳Unicode Table

PS: 漢字的unicode編碼范圍16進(jìn)制為4E00-9FA5,10進(jìn)制則為:19968-40869,即判斷中文的準(zhǔn)確表達(dá)式為:

str.charCodeAt(i)>=19968 && str.charCodeAt(i)<=40869

插一句不太嚴(yán)謹(jǐn)?shù)脑?,代碼不用限制太嚴(yán)謹(jǐn)?shù)姆秶吘鼓悴恢烙脩?測試)會輸哪些奇怪的東西。

以上這篇js處理包含中文的字符串實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 非常好用的JsonToString 方法 簡單實例

    非常好用的JsonToString 方法 簡單實例

    這篇文章介紹了非常好用的JsonToString簡單實例,有需要的朋友可以參考一下
    2013-07-07
  • js 中 document.createEvent的用法

    js 中 document.createEvent的用法

    用該方法創(chuàng)建了 Event 對象以后,必須用上表中所示的初始化方法初始化對象。關(guān)于初始化方法的詳細(xì)信息,請參閱 Event 對象參考。
    2010-08-08
  • 微信小程序頂部可滾動導(dǎo)航效果

    微信小程序頂部可滾動導(dǎo)航效果

    最近領(lǐng)導(dǎo)安排做一個小程序之做頭部做導(dǎo)航分類效果,下面小編給大家分享實現(xiàn)代碼,需要的朋友參考下吧
    2017-10-10
  • js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    數(shù)組解構(gòu)是一種在 JavaScript 中從數(shù)組中提取值并將它們分配給變量的方式,在數(shù)組解構(gòu)中分為完全解構(gòu),不完全解構(gòu),解構(gòu)失敗以及解構(gòu)默認(rèn)值,這篇文章主要介紹了js中數(shù)組解構(gòu)與對象解構(gòu),需要的朋友可以參考下
    2023-09-09
  • js防抖具體實現(xiàn)以及詳細(xì)原理步驟說明(附實例)

    js防抖具體實現(xiàn)以及詳細(xì)原理步驟說明(附實例)

    節(jié)流和防抖這里兩個詞可能對一些初入JavaScript的同學(xué)比較陌生,下面這篇文章主要給大家介紹了關(guān)于js防抖具體實現(xiàn)以及詳細(xì)原理步驟的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • javascript數(shù)組的使用

    javascript數(shù)組的使用

    js Array 對象用于在單個的變量中存儲多個值,這里簡單的接受下,需要的朋友可以參考下
    2013-03-03
  • javascript 流暢動畫實現(xiàn)原理

    javascript 流暢動畫實現(xiàn)原理

    瀏覽器目前來說是沒有抗鋸齒效果的(將來不一定哦),這樣dom元素外觀的改變就被限制在1個像素為最佳效果。

    2009-09-09
  • 手機(jī)瀏覽器喚起微信分享(JS)

    手機(jī)瀏覽器喚起微信分享(JS)

    這篇文章主要介紹了手機(jī)瀏覽器喚起微信分享功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • boostrap模態(tài)框二次彈出清空原有內(nèi)容的方法

    boostrap模態(tài)框二次彈出清空原有內(nèi)容的方法

    今天小編就為大家分享一篇boostrap模態(tài)框二次彈出清空原有內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • JavaScript缺少insertAfter解決方案

    JavaScript缺少insertAfter解決方案

    這篇文章主要介紹了JavaScript缺少insertAfter解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論