`

JS 字符串长度判断

    博客分类:
  • JS
 
阅读更多
content.replaceAll("(\r\n|\r|\n|\n\r)", "<br>"); 回车替换成换行符
方法一

var GetLength = function (str) {
        ///<summary>获得字符串实际长度,中文2,英文1</summary>
        ///<param name="str">要获得长度的字符串</param>
        var realLength = 0, len = str.length, charCode = -1;
        for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128) realLength += 1;
            else realLength += 2;
        }
        return realLength;
    };


function getRealLen( str ) { 
    return str.replace(/[^\x00-\xff]/g, '__').length; //这个把所有双字节的都给匹配进去了 




附赠另一小则技巧:

有时候为了美观,不影响布局和界面,会以一些文案进行截字,但是中文的宽度和英文的宽度不一样,如果按照英文标准来截中文的,或者按中文标准截英文的,显然会忽长忽短,特别是昵称这类容易既有中文又有英文的东西,同样我们可以用上面的思路


function beautySub( str, len) { 
       var reg = /[\u4e00-\u9fa5]/g,    //专业匹配中文 
           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以及大写的部分字母和中文的宽度是一致的,这个函数的正则还有相当大的改进空间,同时也可以指定截字的起始位置。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics