今天在做应用时发现, 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(',') + '}';
}
分享到:
相关推荐
当运行这些代码后,将表格数据转换成的JSON字符串会显示在`#test`的div中,如下所示: ```json [ {"编号":1,"年龄":25,"单元":1,"房间号":"1-2"}, {"编号":2,"年龄":22,"单元":1,"房间号":"1-1"}, {"编号":3,...
3. `substring(startIndex, endIndex)`:截取字符串的一部分,如`"hello".substring(1, 3)`返回'el'。 4. `indexOf(searchValue[, fromIndex])`:查找子字符串首次出现的位置,如果未找到则返回-1,如`"hello".index...
- **用途**: 使用`json_encode`函数将PHP数组转换成JSON格式字符串,并设置`JSON_UNESCAPED_UNICODE`选项来保留中文字符。 #### 4. **循环遍历** - **描述**: 遍历数组中的元素。 - **代码示例**: ```php for ...
易语言虽然不像Python或JavaScript那样有内置的JSON解析库,但可以通过字符串处理函数和正则表达式来实现。如果是HTML,可以使用字符串查找、替换等方法提取所需元素。 例如,如果你知道搜索结果在HTML中的结构,...
翻译JavaScript代码中的字符串280 103范式、秘诀和技巧282 按照设定的地区初始化应用282 将地区标识作为URL一部分带来的问题283 切换地区284 针对日期、数字和货币的自定义过滤器285 104小结287 第11章开发...
链接的重要程度---关于URL字符串的函数,仅仅考察字符串本身,比如认为".com"和"home"的URL比".cc"和"map"高,定义为IL(P); 平均链接的深度---根据上面所分析的宽度优先的原则,计算全站的平均链接深度,然后认为...
例如,可以使用`字符串查找`函数定位特定标签,再结合`字符串替换`或`字符串截取`函数移除不需要的部分。对于更复杂的HTML结构,正则表达式能提供更为强大的匹配和替换能力。易语言的正则表达式支持包括贪婪匹配、非...
了解如何处理字符串(如查找、替换、截取)和数组(如遍历、排序、合并)对于处理数据至关重要。 ### 3. 函数与类 PHP支持自定义函数,用于封装代码块以重复使用。同时,PHP5引入了面向对象编程(OOP),包括类、...