/**
* @param begin 截取开始的索引
* @param num 截取的长度
*/
//截取字符串(包括中文)
function SetString(str, len) {
var strlen = 0;
var s = "";
for (var i = 0; i < str.length; i++) {
var m = str.charAt(i).match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数
if (m!=null && m.length>0) {
strlen += 2;
}
else {
strlen++;
}
s += str.charAt(i);
if (strlen >= len) {
return s;
}
}
return s;
} //得到字符总数
function getChars(str) {
var i = 0;
var c = 0.0;
var unicode = 0;
var len = 0; if (str == null || str == "") {
return 0;
}
len = str.length;
for(i = 0; i < len; i++) {
unicode = str.charCodeAt(i);
if (unicode < 127) { //判断是单字符还是双字符
c += 1;
} else { //chinese
c += 2;
}
}
return c;
} function sb_strlen(str) {
return getChars(str);
}
//截取字符
function sb_substr(str, startp, endp) {
var i=0; c = 0; unicode=0; rstr = '';
var len = str.length;
var sblen = sb_strlen(str); if (startp < 0) {
startp = sblen + startp;
} if (endp < 1) {
endp = sblen + endp;// - ((str.charCodeAt(len-1) < 127) ? 1 : 2);
}
// 寻找起点
for(i = 0; i < len; i++) {
if (c >= startp) {
break;
}
var unicode = str.charCodeAt(i);
if (unicode < 127) {
c += 1;
} else {
c += 2;
}
} // 开始取
for(i = i; i < len; i++) {
var unicode = str.charCodeAt(i);
if (unicode < 127) {
c += 1;
} else {
c += 2;
}
rstr += str.charAt(i); if (c >= endp) {
break;
}
} return rstr;
} function mb_strlen(str) {
var len = 0;
for(var i = 0; i < str.length; i++) {
len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;
}
return len;
}

js获取(包括中文)字符串长度与截取字符串的更多相关文章

  1. PHP计算中文字符串长度 、截取相应中文字符串

    PHP计算字符串长度     及其   截取相应中文字符串 计算字符长度: $gouWu = '美日汇http://www.hnzyxok.com/'; echo mb_strlen($gouWu,' ...

  2. 记一次js中和php中的字符串长度计算截取的终极问题和完美解决方案

    1.js是用unicode算长度的,比如单字节的算1,中文也算1,但是正常我们想让两个单字节算1,如何计算这个长度 第一种解决方案,用正则,如下 /[\u0x00-\u0xff]/,天真的想着,这样就 ...

  3. PHP获取中英文混合字符串长度及截取

    1.字符串长度 PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改 /** * PHP获取字符串中英文混合长度 * @param $str string 字符串 *  ...

  4. (实用篇)php中计算中文字符串长度、截取中文字符串的函数代码

    在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务 ...

  5. php中计算中文字符串长度、截取中文字符串

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...

  6. php中字符串长度和截取的函数

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理. 在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函 ...

  7. js常用方法和检查是否有特殊字符串和倒序截取字符串

     js常用方法demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  8. 【记录】JS 获取 URL 中文参数编码

    比如 URL:http://www.xxxx.com/中文参数 这个在 js 获取"中文参数"的时候会出现乱码. 解决方法:decodeURIComponent(获取的中文参数);

  9. JS 获取某个容器控件中id包含制定字符串的控件id列表

    //获取某容器控件中id包含某字符串的控件id列表 //参数:容器控件.要查找的控件的id关键字 function GetIdListBySubKey(container,subIdKey) { va ...

随机推荐

  1. Oculus Rift 没有声音的解决方法

    If you do not hear any audio when using Rift, please try the following steps: Check the Rift audio s ...

  2. storm学习路线指南

    关于对storm的介绍已经有很多了,我这里不做过多的介绍,我介绍一下我自己的学习路线,希望能帮助一些造轮子的同学走一些捷径,毕竟我也是站在前人总结整理的基础上学习了,如果有不足之处,还请大家不要喷我. ...

  3. spark streaming 接收kafka消息之五 -- spark streaming 和 kafka 的对接总结

    Spark streaming 和kafka 处理确保消息不丢失的总结 接入kafka 我们前面的1到4 都在说 spark streaming 接入 kafka 消息的事情.讲了两种接入方式,以及s ...

  4. MYSQL A、B表数组关联查询

    最终结果: 数据库表 A表: B表: 操作步骤 主要关键字:FIND_IN_SET.GROUP_CONCAT.LEFT JOIN.GROUP BY 第一步:left join 连接AB表并通过 fin ...

  5. thinkphp phpexcel导出返回乱码

    今天做了一个excel文件导出的功能  可是无论怎么改网上怎么搜答案什么缓冲啊charset=UTF-8'a都不起效 <?phpnamespace app\admin\controller;us ...

  6. 【Android Studio】E/memtrack: Couldn't load memtrack module (No such file or directory)【待解决】

    Android Studio 又遇到了问题--如下: 06-21 07:27:57.855 3232-3232/? E/memtrack: Couldn't load memtrack module ...

  7. DesignPattern系列__10单例模式

    单例模式介绍 单例模式,是为了确保在整个软件体统中,某个类对象只有一个实例,并且该类通常会提供一个对外获取该实例的public方法(静态方法). 比如日志.数据库连接池等对象,通常需要且只需要一个实例 ...

  8. 【C/C++】随机数的生成

    C/C++:rand()函数 rand()函数的头文件:#include<stdlib.h> 该函数产生的随机数随机性差,速度慢,周期小(0-32767) 用法如下所示: #include ...

  9. Flink 源码解析 —— 深度解析 Flink 是如何管理好内存的?

    前言 如今,许多用于分析大型数据集的开源系统都是用 Java 或者是基于 JVM 的编程语言实现的.最着名的例子是 Apache Hadoop,还有较新的框架,如 Apache Spark.Apach ...

  10. azure k8s netcore 程序初次部署

    以下都是我在2018年12月份做的实验,今天才发布出来. 念想 首先是了解一些关于K8s的一些基础概念,推荐查看一下这个链接,非常适合入门k8s.是因为K8S的环境搭建比较复杂(最主要是懒),其实也有 ...