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

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

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

【 tulaoshi.com - Web开发 】

script type="text/javascript"

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

     Author         : Yanfu Xie xieyanfu@yahoo.com.cn

     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 /");

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

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

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

/script

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

script

a="中文測試"

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

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);

dd(b,8);

/script

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

延伸阅读
标签: Web开发
function cutstr(thestr,strlen) dim l,t,c l=len(thestr) t=0 for dxy=1 to l c=Abs(asc(Mid(thestr,dxy,1))) if c255 then t=t+2 else t=t+1 end if if t=strlen then thev=left(thestr,dxy) exit for else bu=strlen-t for bui=1 to bu strbu=" " strbuall=strbuall&strbu next thev=thestr&strbuall strbu="" strbuall="" end if next...
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...
标签: Web开发
操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的 JavaScript 函数为开发人员提供了他们所需要的所有功能: • concat() – 将两个或多个字符的文本组合起来,返回一个新的字符...

经验教程

902

收藏

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