`
lvinie
  • 浏览: 115306 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用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(',') + '}';      
} 
分享到:
评论

相关推荐

    js与jQuery实现获取table中的数据并拼成json字符串操作示例

    当运行这些代码后,将表格数据转换成的JSON字符串会显示在`#test`的div中,如下所示: ```json [ {"编号":1,"年龄":25,"单元":1,"房间号":"1-2"}, {"编号":2,"年龄":22,"单元":1,"房间号":"1-1"}, {"编号":3,...

    StringScenarios

    3. `substring(startIndex, endIndex)`:截取字符串的一部分,如`"hello".substring(1, 3)`返回'el'。 4. `indexOf(searchValue[, fromIndex])`:查找子字符串首次出现的位置,如果未找到则返回-1,如`"hello".index...

    thinkhphp开发常用的原码手稿,方便敏捷开发!

    - **用途**: 使用`json_encode`函数将PHP数组转换成JSON格式字符串,并设置`JSON_UNESCAPED_UNICODE`选项来保留中文字符。 #### 4. **循环遍历** - **描述**: 遍历数组中的元素。 - **代码示例**: ```php for ...

    易语言调用搜索引擎例程-易语言

    易语言虽然不像Python或JavaScript那样有内置的JSON解析库,但可以通过字符串处理函数和正则表达式来实现。如果是HTML,可以使用字符串查找、替换等方法提取所需元素。 例如,如果你知道搜索结果在HTML中的结构,...

    精通AngularJS part1

    翻译JavaScript代码中的字符串280 103范式、秘诀和技巧282 按照设定的地区初始化应用282 将地区标识作为URL一部分带来的问题283 切换地区284 针对日期、数字和货币的自定义过滤器285 104小结287 第11章开发...

    基于Java和Python的爬虫项目实战源码.zip

    链接的重要程度---关于URL字符串的函数,仅仅考察字符串本身,比如认为".com"和"home"的URL比".cc"和"map"高,定义为IL(P); 平均链接的深度---根据上面所分析的宽度优先的原则,计算全站的平均链接深度,然后认为...

    易语言HTML源码过滤-易语言

    例如,可以使用`字符串查找`函数定位特定标签,再结合`字符串替换`或`字符串截取`函数移除不需要的部分。对于更复杂的HTML结构,正则表达式能提供更为强大的匹配和替换能力。易语言的正则表达式支持包括贪婪匹配、非...

    PHPlearning

    了解如何处理字符串(如查找、替换、截取)和数组(如遍历、排序、合并)对于处理数据至关重要。 ### 3. 函数与类 PHP支持自定义函数,用于封装代码块以重复使用。同时,PHP5引入了面向对象编程(OOP),包括类、...

Global site tag (gtag.js) - Google Analytics