中文字符串截取的js函数代码

 更新时间:2013年04月17日 17:14:27   作者:  
有时在显示某段文字的时候,可能会太长,影响我们页面的显示效果。如果仅是英文,那么我们可以用String.substring(start, end)函数就已经够用了。但是通常我们都会遇到既有英文,又有汉字的情况。而汉字是占用2个字节的,如果用String.substring(start, end)截取字符串的话,会发现汉字截取后比英文截取后个数虽然相同,但是长度还是长出去不少(具体要视字符个数来决定)

为了解决这个问题昨天写了根据字节数截取字符串的函数。
具体使用很简单,跟String.subString(start, end)一样使用就可。比如:var str = "诶必塞第衣爱抚即"; var str1 = str.subCHStr(2, 2); var str2 = str.subCHString(2, 4); alert(str1 + " == " + str2);

复制代码 代码如下:

Code
//计算字符串长度
String.prototype.strLen = function() {
    var len = 0;
    for (var i = 0; i < this.length; i++) {
        if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) len += 2; else len ++;
    }
    return len;
}
//将字符串拆成字符,并存到数组中
String.prototype.strToChars = function(){
   var chars = new Array();
   for (var i = 0; i < this.length; i++){
       chars[i] = [this.substr(i, 1), this.isCHS(i)];
   }
   String.prototype.charsArray = chars;
   return chars;
}
//判断某个字符是否是汉字
String.prototype.isCHS = function(i){
   if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0)
       return true;
   else
       return false;
}
//截取字符串(从start字节到end字节)
String.prototype.subCHString = function(start, end){
   var len = 0;
   var str = "";
   this.strToChars();
   for (var i = 0; i < this.length; i++) {
       if(this.charsArray[i][1])
           len += 2;
       else
           len++;
       if (end < len)
           return str;
       else if (start < len)
           str += this.charsArray[i][0];
   }
   return str;
}
//截取字符串(从start字节截取length个字节)
String.prototype.subCHStr = function(start, length){
   return this.subCHString(start, start + length);
}

相关文章

  • JS实现图片验证码功能

    JS实现图片验证码功能

    这篇文章主要为大家详细介绍了JS实现图片验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 微信小程序实现录制、试听、上传音频功能(带波形图)

    微信小程序实现录制、试听、上传音频功能(带波形图)

    这篇文章主要介绍了微信小程序实现录制、试听、上传音频功能(带波形图),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • JavaScript 严格模式(use strict)用法实例分析

    JavaScript 严格模式(use strict)用法实例分析

    这篇文章主要介绍了JavaScript 严格模式(use strict)用法,结合实例形式分析了JavaScript 严格模式的基本功能、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • 纯JavaScript手写图片轮播代码

    纯JavaScript手写图片轮播代码

    图片轮播效果在各大网站都可以见到,应用非常广泛,今天小编给大家分享纯js实现手写图片轮播的代码,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • javascript设计模式之解释器模式详解

    javascript设计模式之解释器模式详解

    这篇文章主要介绍了javascript设计模式之解释器模式详解,当有一个语言需要解释执行,并且可以将该语言中的句子表示为一个抽象语法树的时候,可以考虑使用解释器模式,需要的朋友可以参考下
    2014-06-06
  • 几个比较实用的JavaScript 测试及效验工具

    几个比较实用的JavaScript 测试及效验工具

    JavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者,掌握JavaScript可以增强用户的使用体验,提供交互及富客户端等功能。
    2010-04-04
  • 基于JavaScript编写一个在线画板

    基于JavaScript编写一个在线画板

    随着Web技术的发展,网页上的交互性变得越来越重要,一个在线画板是一个很好的例子,本文将使用HTML5的Canvas元素和JavaScript来实现一个简单的在线画板,需要的可以了解下
    2024-01-01
  • 几款极品的javascript压缩混淆工具

    几款极品的javascript压缩混淆工具

    几款极品的javascript压缩混淆工具...
    2007-05-05
  • JavaScript检查弹出窗口是否被阻拦的方法技巧

    JavaScript检查弹出窗口是否被阻拦的方法技巧

    这篇文章主要介绍了JavaScript检查弹出窗口是否被阻拦的方法技巧,本文用于检测window.open弹出的窗口是否被阻拦,需要的朋友可以参考下
    2015-03-03
  • javascript实现商品图片放大镜

    javascript实现商品图片放大镜

    这篇文章主要为大家详细介绍了javascript实现商品图片放大镜,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论