首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

施用javascripte 获得含中文字符串长度 截取含中文字符串 json转字符串 js

2012-10-07 
使用javascripte 获得含中文字符串长度 截取含中文字符串 json转字符串 js今天在做应用时发现, javascript

使用javascripte 获得含中文字符串长度 截取含中文字符串 json转字符串 js

今天在做应用时发现, javascripte默认的获取字符串长度, 把 英文 和 中文都按照1来计算

?

比如 var str1 = "Hello";? str1.length的值是等于5

?????? var str2 = "中国";??? str2.length的值是等于2

?

结果和我们所期望的不是很一致, 因为汉字在java等高级语言中是两个字符, str2的长度应该为4.

?

这就引出今天所要解决的问题, 获得中英混合字符串的长度, 和截取字符串的方法

?

代码如下

//获得字符串长度, 包含中文function strlen(str) {    var len = 0;    for (var i = 0; i < str.length; i++) {        if (str.charCodeAt(i) > 255) len += 2; else len ++;    }    return len;}

?

//截取字符串, 包含中文function substr(str, len){    if(!str || !len) { return ''; }     //预期计数:中文2字节,英文1字节    var a = 0;     //循环计数    var i = 0;     //临时字串    var temp = '';     for (i=0;i<str.length;i++){        if (str.charCodeAt(i)>255){            //按照预期计数增加2            a+=2;        }else{            a++;        }        //如果增加计数后长度大于限定长度,就直接返回临时字符串        if(a > len) { return temp; }         //将当前内容加到临时字符串        temp += str.charAt(i);    }    //如果全部是单字节字符,就直接返回源字符串    return str;}
function JsonToStr(o) {      var arr = [];      var fmt = function(s) {      if (typeof s == 'object' && s != null) return JsonToStr(s);      return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;      }      for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));      return '{' + arr.join(',') + '}';      } 

热点排行
Bad Request.