javascript中使用正則計(jì)算中文長(zhǎng)度的例子
由于javascript是unicode編碼的,所有的字符對(duì)于它來(lái)說(shuō)一個(gè)就是一個(gè),但是后臺(tái)程序不是,通常在后臺(tái)程序中一個(gè)中文是占兩個(gè)字節(jié)的,這就導(dǎo)致了前后端校驗(yàn)長(zhǎng)度不一致,這個(gè)問(wèn)題可以通過(guò)正則來(lái)解決。
function getRealLen( str ) {
return str.replace(/[^\x00-\xff]/g, '__').length; //這個(gè)把所有雙字節(jié)的都給匹配進(jìn)去了
}
附贈(zèng)另一小則技巧:
有時(shí)候?yàn)榱嗣烙^,不影響布局和界面,會(huì)以一些文案進(jìn)行截字,但是中文的寬度和英文的寬度不一樣,如果按照英文標(biāo)準(zhǔn)來(lái)截中文的,或者按中文標(biāo)準(zhǔn)截英文的,顯然會(huì)忽長(zhǎng)忽短,特別是昵稱這類容易既有中文又有英文的東西,同樣我們可以用上面的思路
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)為一個(gè)中文字符是兩個(gè)英文字符的寬度,如果你是完美主義者,應(yīng)該想到j(luò)和w,m的寬度是不一樣的,w和m以及大寫的部分字母和中文的寬度是一致的,這個(gè)函數(shù)的正則還有相當(dāng)大的改進(jìn)空間,同時(shí)也可以指定截字的起始位置。
- php正則表達(dá)匹配中文問(wèn)題分析小結(jié)
- PHP 正則表達(dá)式驗(yàn)證中文的問(wèn)題
- PHP把空格、換行符、中文逗號(hào)等替換成英文逗號(hào)的正則表達(dá)式
- php+正則將字符串中的字母數(shù)字和中文分割
- PHP 正則判斷中文UTF-8或GBK的思路及具體實(shí)現(xiàn)
- 正確的PHP匹配UTF-8中文的正則表達(dá)式
- javascript判斷中文的正則
- 中文用戶名的js檢驗(yàn)正則
- js中判斷數(shù)字\字母\中文的正則表達(dá)式 (實(shí)例)
- js實(shí)現(xiàn)正則匹配中文標(biāo)點(diǎn)符號(hào)的方法
- JavaScript正則表達(dá)式驗(yàn)證中文實(shí)例講解
- JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法【基于正則實(shí)現(xiàn)】
- php與javascript正則匹配中文的方法分析
相關(guān)文章
javascript鼠標(biāo)滑過(guò)顯示二級(jí)菜單特效
這篇文章主要為大家詳細(xì)介紹了javascript鼠標(biāo)滑過(guò)顯示二級(jí)菜單特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07javascript顯式類型轉(zhuǎn)換實(shí)例分析
這篇文章主要介紹了javascript顯式類型轉(zhuǎn)換,實(shí)例分析了javascript實(shí)現(xiàn)類型轉(zhuǎn)換的常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04JavaScript實(shí)現(xiàn)點(diǎn)擊單元格改變背景色的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊單元格改變背景色的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-02-02AngularJS+Bootstrap實(shí)現(xiàn)多文件上傳與管理
這篇文章主要為大家詳細(xì)介紹了AngularJS+Bootstrap實(shí)現(xiàn)多文件上傳與管理,對(duì)上傳文件進(jìn)行加載與刪除操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11深入理解JavaScript中的宏任務(wù)和微任務(wù)機(jī)制
JavaScript中的任務(wù)分為宏任務(wù)和微任務(wù),它們的執(zhí)行順序會(huì)影響代碼的執(zhí)行結(jié)果。了解它們的機(jī)制可以幫助我們更好地理解事件循環(huán)和異步編程,避免出現(xiàn)一些意想不到的錯(cuò)誤2023-05-05JavaScript 幾種循環(huán)方式以及模塊化的總結(jié)
這篇文章主要介紹了JavaScript 幾種循環(huán)方式以及模塊化的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下2020-09-09