国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript中使用正則計算中文長度的例子

2024-05-06 16:04:48
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了javascript中使用正則計算中文長度的例子,需要的朋友可以參考下

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

復制代碼 代碼如下:


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


附贈另一小則技巧:

有時候為了美觀,不影響布局和界面,會以一些文案進行截字,但是中文的寬度和英文的寬度不一樣,如果按照英文標準來截中文的,或者按中文標準截英文的,顯然會忽長忽短,特別是昵稱這類容易既有中文又有英文的東西,同樣我們可以用上面的思路

復制代碼 代碼如下:


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);
}


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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 治多县| 怀化市| 石首市| 桦甸市| 通江县| 丹巴县| 金乡县| 建始县| 芷江| 香港 | 共和县| 肇州县| 玉林市| 湟源县| 漳州市| 弥勒县| 民县| 吉木萨尔县| 乌拉特前旗| 靖远县| 临夏市| 中西区| 盖州市| 益阳市| 曲靖市| 佛坪县| 邹城市| 太湖县| 中方县| 泉州市| 灵石县| 修水县| 娄烦县| 宣汉县| 定兴县| 阳城县| 开鲁县| 扎囊县| 浑源县| 西乌珠穆沁旗| 靖西县|