javascript 正确截取单字节和双字节混和字符串的方法

2016-02-19 20:29 7 1 收藏

下面,图老师小编带您去了解一下javascript 正确截取单字节和双字节混和字符串的方法,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

script type="text/javascript"

/*************************************************************

     Author         : Yanfu Xie xieyanfu@yahoo.com.cn

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

     Url         : http://www.yitu.org

     Description     : 正确截取单字节和双字节混和字符串

     String str     : 要截取的字符串

     Number         : 截取长度

*************************************************************/

function substr(str, len)

{

    if(!str || !len) { return ''; }

    //预期计数:中文2字节,英文1字节  

    var a = 0;

    //循环计数 

    var i = 0;

    //临时字串  

    var temp = ''; 

    for (i=0;istr.length;i++) 

    {

        if (str.charCodeAt(i)255) 

        { 

            //按照预期计数增加2

             a+=2;

        } 

        else 

        {

             a++;

        }

        //如果增加计数后长度大于限定长度,就直接返回临时字符串  

        if(a len) { return temp; }

        //将当前内容加到临时字符串  

         temp += str.charAt(i);

    } 

    //如果全部是单字节字符,就直接返回源字符串  

    return str;

}

var str = "呵呵he哈哈嘿嘿and";

document.write("字符串:font color='red'"+str+"/fontbr /br /");

document.write("javascript 默认截取10个字节的返回值:br /");

document.write("font color='red'"+str.substr(0, 10)+"/fontbr /br /");

document.write("用本文介绍的方法截取10个字节的返回值:br /");

document.write("font color='red'"+substr(str, 10)+"/fontbr /br /");

document.write("截取9个字节的返回值:br /");

document.write("font color='red'"+substr(str, 9)+"/fontbr /br /");

/script

還有更簡單的方法(正則)

script

a="中文測試"

b="51js.com"

function dd(str,c){document.write(str.replace(/([u0391-uffe5])/ig,'$1a').substring(0,c).replace(/([u0391-uffe5])a/ig,'$1')+"br/")}

dd(a,8);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

dd(b,8);

/script

来源:http://www.tulaoshi.com/n/20160219/1623844.html

延伸阅读
1、 代码如下: const char *str = "test测试test"; while(*str) { //这里只需要判断第一个字节大于0x80就行了,前提是输入的是合法的GBK字符串 //原因在于,如果第一个字节大于0x80,那么它必然和后面一个字节一起组成一个汉字 //所以就没有必要再去判断后面一个字节了 //再强调一下,前提条件是输入合法的GBK字符串 if(*str 0x80) { // 汉...
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=gb2312" / titlecookie/title script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min...
标签: Web开发
以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况。但中英文混合、特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将m...
1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。 调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。 2. 如何对DBCS(双字节字符集)字符串...
标签: Web开发
操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的 JavaScript 函数为开发人员提供了他们所需要的所有功能: • concat() – 将两个或多个字符的文本组合起来,返回一个新的字符...

经验教程

505

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部