Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165554
  • 博文数量: 1310
  • 博客积分: 3980
  • 博客等级: 中校
  • 技术积分: 8005
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-09 22:05
文章分类

全部博文(1310)

文章存档

2011年(1)

2008年(1309)

我的朋友

分类:

2008-11-09 17:40:22



自动将双字节字符长度计算为2,取字符时也按照单字节的长度取,如2即取1个汉字或两个字母,1取一个汉字或字母。
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    ""
>

<html xmlns="" 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>



Yemoo'S JS Blog 2006-07-03 09:52 发表评论
阅读(201) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~