惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
博客园 - 叶小钗
F
Fortinet All Blogs
GbyAI
GbyAI
Martin Fowler
Martin Fowler
博客园 - 聂微东
I
InfoQ
B
Blog
IT之家
IT之家
美团技术团队
L
LangChain Blog
小众软件
小众软件
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
Last Week in AI
Last Week in AI
A
About on SuperTechFans
博客园 - Franky
P
Proofpoint News Feed
罗磊的独立博客
月光博客
月光博客
V
Visual Studio Blog
MyScale Blog
MyScale Blog

博客园 - HenryZhang

Javascript 使用类 用javascript按需加载.js和.css文件 window.open 打开的窗口关闭后 javascript小技巧 看完越狱20件必须懂的东西(转) vs2005 安装sp1 NHibernate1.2在VS2005下的配置 AJAX第十一天 AJAX第十天 AJAX第九天 AJAX第七天 AJAX第八天 AJAX第六天 JavaScript常用正则表达式 JS正则表达式问题终于解决 Ajax第五天 Ajax第四天 上传文件时用到的显示文件大小 除去所有在html元素中标记
考虑了全半角的SubString
HenryZhang · 2007-02-25 · via 博客园 - HenryZhang

//考虑了全半角的SubString
function GetSubString(str,len)
{
    if(len == "undefined")
    {
        return str;
    }
    var newStr = new Array();
    var index =0;
    for(var i=0;i<=str.length-2;i++)
    {
        var _str = str.substring(i,i+1);
        var code = escape(str.charAt(i));
//        if(_str.match(/^[\u4e00-\u9fa5]*$/g) != null)  这种写法只考虑了汉字,而没有考虑全角字符
        if ((code.length >= 4) && (code < '%uFF60' || code > '%uFF9F'))
        {
            index = index + 2;
        }
        else
        {
            index = index + 1;
        }
        if(index <= len)
        {
            newStr.push(_str);
        }
        else
        {
            newStr.push("...");
            break;
        }
    }
    return newStr.join("");
}

posted on 2007-02-25 17:02  HenryZhang  阅读(246)  评论()    收藏  举报