A JavaScript Fancier

伟大的javascript技术研究中...

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 479 评论 :: 0 Trackbacks
<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

公告

本blog为作者本人学习JS脚本所用,未经特别声明,本站所有文章均属作者本人原创,请转载时注明来源!谢谢合作!同时希望与各位javascript爱好者交流学习。MSN:yanwei8410@hotmail.com

常用链接

留言簿(26)

随笔分类

随笔档案

Ajax技术站点

javascript学习站点

JS高人Blog

Ruby&&Ajax框架

Web技术站点

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜



自动将双字节字符长度计算为2,取字符时也按照单字节的长度取,如2即取1个汉字或两个字母,1取一个汉字或字母。
<!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" xml:lang="en" lang="en">

<head>
  
<title></title>
</head>

<body>
<div id='jsdiv' style="border:1px solid #ccc"></div>
<script type="text/javascript">
// 得到字符串的真实长度(双字节换算为两个单字节)
function getStrActualLen(sChars)
{
    
return sChars.replace(/[^\x00-\xff]/g,"xx").length;
}

// 截取固定长度子字符串 sSource为字符串iLen为长度
function getInterceptedStr(sSource, iLen)
{
    
if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen)
    {
        
return sSource;
    }

    
var str = "";
    
var l = 0;
    
var schar;
    
for(var i=0; schar=sSource.charAt(i); i++)
    {
        str 
+= schar;
        l 
+= (schar.match(/[^\x00-\xff]/!= null ? 2 : 1);
        
if(l >= iLen)
        {
            
break;
        }
    }

    
return str;
}
var str1="这是一个字符串截取的函数,this is a test!";
//alert(getStrActualLen(str1));
alert(getInterceptedStr(str1,25));
</script>
</body>
</html>

posted on 2006-07-03 09:52 Yemoo'S JS Blog 阅读(2177) 评论(0)  编辑 收藏 引用 所属分类: javascript代码收藏
只有注册用户登录后才能发表评论。
51La