最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript中使用正則計(jì)算中文長度的例子

 更新時間:2014年04月29日 10:42:41   作者:  
這篇文章主要介紹了javascript中使用正則計(jì)算中文長度的例子,需要的朋友可以參考下

由于javascript是unicode編碼的,所有的字符對于它來說一個就是一個,但是后臺程序不是,通常在后臺程序中一個中文是占兩個字節(jié)的,這就導(dǎo)致了前后端校驗(yàn)長度不一致,這個問題可以通過正則來解決。

復(fù)制代碼 代碼如下:

function getRealLen( str ) {
    return str.replace(/[^\x00-\xff]/g, '__').length; //這個把所有雙字節(jié)的都給匹配進(jìn)去了
}

附贈另一小則技巧:

有時候?yàn)榱嗣烙^,不影響布局和界面,會以一些文案進(jìn)行截字,但是中文的寬度和英文的寬度不一樣,如果按照英文標(biāo)準(zhǔn)來截中文的,或者按中文標(biāo)準(zhǔn)截英文的,顯然會忽長忽短,特別是昵稱這類容易既有中文又有英文的東西,同樣我們可以用上面的思路

復(fù)制代碼 代碼如下:

function beautySub( str, len) {
       var reg = /[\u4e00-\u9fa5]/g,    //專業(yè)匹配中文
           slice = str.substring(0,len),
           realen = len - ( ~~( slice.match(reg) && slice.match(reg).length ) );
           return slice.substring(0, realen ? realen : 1);
}

這里我們認(rèn)為一個中文字符是兩個英文字符的寬度,如果你是完美主義者,應(yīng)該想到j(luò)和w,m的寬度是不一樣的,w和m以及大寫的部分字母和中文的寬度是一致的,這個函數(shù)的正則還有相當(dāng)大的改進(jìn)空間,同時也可以指定截字的起始位置。

相關(guān)文章

  • js 頁面關(guān)閉前的出現(xiàn)提示的實(shí)現(xiàn)代碼

    js 頁面關(guān)閉前的出現(xiàn)提示的實(shí)現(xiàn)代碼

    主流的瀏覽器都支持onbeforeunload事件(即頁面卸載前觸發(fā)的事件),而現(xiàn)在大多網(wǎng)站都用到了此功能
    2011-05-05
  • javascript基于DOM實(shí)現(xiàn)權(quán)限選擇實(shí)例分析

    javascript基于DOM實(shí)現(xiàn)權(quán)限選擇實(shí)例分析

    這篇文章主要介紹了javascript基于DOM實(shí)現(xiàn)權(quán)限選擇的方法,實(shí)例分析了javascript針對頁面元素的動態(tài)選擇與添加刪除等操作的相關(guān)技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-05-05
  • javascript比較文檔位置

    javascript比較文檔位置

    一個很棒的 blog 文章,是 PPK 兩年前寫的,文章中解釋了 contains() 和 compareDocumentPosition() 方法運(yùn)行在他們各自的瀏覽器上。從那起,我已經(jīng)對這些方法做了大量的研究,并且已經(jīng)在很多場合使用他們。在很多任務(wù)中,他們被證明是非常有用的(特別關(guān)于結(jié)構(gòu)的抽象 DOM 選擇器)。
    2008-04-04
  • 寫js時遇到的一些小問題

    寫js時遇到的一些小問題

    寫js時遇到的一些小問題,需要的朋友可以參考下。
    2010-12-12
  • 原生JS封裝Ajax插件(同域、jsonp跨域)

    原生JS封裝Ajax插件(同域、jsonp跨域)

    這篇文章主要為大家詳細(xì)介紹了原生JS封裝Ajax插件,為大家介紹不同域之間互相請求資源的跨域,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JS驗(yàn)證有效性示例

    JS驗(yàn)證有效性示例

    有效性驗(yàn)證的方法有很多,在本文將為大家介紹下如何使用js簡單實(shí)現(xiàn)下,感興趣的朋友可以參考下
    2013-10-10
  • js精度溢出解決方案

    js精度溢出解決方案

    一般參數(shù)值不能超過16位。如果超出16都是用0替代,導(dǎo)致我們查詢不到自己想要的結(jié)果,本文將介紹如何處理這種現(xiàn)象
    2012-12-12
  • ???????分享7?個實(shí)用?TypeScript?單行代碼

    ???????分享7?個實(shí)用?TypeScript?單行代碼

    這篇文章主要介紹了???????分享7?個實(shí)用?TypeScript?單行代碼,其中包括泛型、斷言等高級用法,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-05-05
  • 防止頁面被iframe(兼容IE,Firefox火狐)

    防止頁面被iframe(兼容IE,Firefox火狐)

    以前發(fā)布的防止被iframe的代碼,容易在火狐瀏覽器下, 不斷的刷新頁面。所以從網(wǎng)站找到了這篇文章。
    2010-07-07
  • 如何用JS實(shí)現(xiàn)簡單的數(shù)據(jù)監(jiān)聽

    如何用JS實(shí)現(xiàn)簡單的數(shù)據(jù)監(jiān)聽

    這篇文章主要介紹了如何用JS實(shí)現(xiàn)簡單的數(shù)據(jù)監(jiān)聽,對數(shù)據(jù)監(jiān)聽感興趣的同學(xué),可以參考一下
    2021-05-05

最新評論

清镇市| 长岛县| 胶南市| 本溪市| 德兴市| 罗城| 定兴县| 乌拉特前旗| 滨海县| 辽宁省| 潼关县| 益阳市| 武平县| 中阳县| 安多县| 从化市| 宝山区| 台北县| 德阳市| 井冈山市| 新营市| 临沧市| 望城县| 青浦区| 巫山县| 饶河县| 榆树市| 长垣县| 香河县| 巫山县| 万源市| 枣强县| 武邑县| 苏尼特左旗| 鄱阳县| 龙游县| 富锦市| 延吉市| 宝兴县| 耒阳市| 仁布县|