A JavaScript Fancier

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

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 479 评论 :: 0 Trackbacks


自动将双字节字符长度计算为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 阅读(2171) 评论(0)  编辑 收藏 引用 所属分类: javascript代码收藏
只有注册用户登录后才能发表评论。