首頁 >web前端 >js教程 >javascript中使用正規計算中文長度的範例_javascript技巧

javascript中使用正規計算中文長度的範例_javascript技巧

WBOY
WBOY原創
2016-05-16 16:50:451051瀏覽

由於javascript是unicode編碼的,所有的字元對於它來說一個就是一個,但是後台程式不是,通常在後台程式中一個中文是佔兩個字節的,這就導致了前後端校驗長度不一致,這個問題可以用正則來解決。

複製程式碼 程式碼如下:

function getRealLen( str replace(/[^x00-xff]/g, '__').length; //這個把所有雙字節的都給匹配進去了
}
附贈另一小則技巧:
有時候為了美觀,不影響佈局和介面,會以一些文案進行截字,但是中文的寬度和英文的寬度不一樣,如果按照英文標準來截中文的,或者按中文標準截英文的,顯然會忽長忽短,特別是暱稱這類容易既有中文又有英文的東西,同樣我們可以用上面的思路


複製代碼 代碼如下:
function beautySub( str, len) {
       var reg   slice = str.substring(0,len),
           realen = len - ( ~~( slice.match(reg) && slice.match(reg).length ) );
realen : 1);
}

這裡我們認為一個中文字符是兩個英文字符的寬度,如果你是完美主義者,應該想到j和w,m的寬度是不一樣的, w和m以及大寫的部分字母和中文的寬度是一致的,這個函數的正則還有相當大的改進空間,同時也可以指定截字的起始位置。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn