工作需要,暂时要告别javascript 。趁这段时间不是特别忙,将一些javascript 技术总结下。

/**
 * @brief  扩展原生字符串 
 * @author hechangmin@gmail.com
 
*/

var StringEx = 

    
/**
     * @brief 去除字符串前后空格
     
*/
    trim : 
function()
    {
        
return this.replace(/(^\s*)|(\s*$)/g, "");
    },
    
    
/**
     * @brief 去除左边空格
     
*/
    ltrim : 
function()
    { 
        
return this.replace(/(^\s*)/g, ""); 
    },
    
    
/**
     * @brief 去除右边空格
     
*/
    rtrim : 
function()
    { 
        
return this.replace(/(\s*$)/g, "");      
    },
    
    
/**
     * @brief 避免XSS 攻击
     
*/
    avoidXSS : 
function()
    {
        
var strTemp = this.replace(/&/g, "&");
        strTemp 
= strTemp.replace(/</g, "&lt;");
        strTemp 
= strTemp.replace(/>/g, "&gt;");
        strTemp 
= strTemp.replace(/\"/g, "&quot;");
        return strTemp;    
    } ,
    
    /**
     * @brief 获取字符串的字节长度 汉字默认双字节
     */
    byteLength : function()
    {
          return this.replace(/[^\x00-\xff]/g,
"**").length;
    },
    
    /**
     * @brief     除去HTML标签
     * @example    <div id=
"test1">aaaa</div>  =>  aaaa 
     */
    removeHTML : function()
    {
        return this.replace(/<\/?[^>]+>/gi, '');
    },
    
    /**
     * @brief      格式化字符串
     * @example 
"<div>{0}</div>{1}".format(txt0,txt1)
     */
    format : function()
    {
        var args = [];
        
        for (var i = 0, il = arguments.length; i < il; i++)
        {
            args.push(arguments[i]);
        }
        
        return this.replace(/\{(\d+)\}/g, function(m, i)
        {
            return args[i];
        });
    },
    
    /**
     * @brief 字符串转数字
     */
    toInt : function() 
    {
        return Math.floor(this);
    }    
}


for (var it in StringEx) 
{
    String.prototype[it] = StringEx[it];
}

test:

    var strTest = "   -{0}这里是扩展原生字符串test{1}- ";
            
            alert(strTest.length);                 
// output : 26
            alert(strTest.ltrim().length);      // 23
            alert(strTest.rtrim().length);      // 25
            
            alert(strTest.byteLength());        
// 36
            
            alert(strTest.format(
"abc","def")); //   -abc这里是扩展原生字符串testdef- 
            
            
var strNumber = "89989";
            
            alert(
typeof strNumber.toInt());    // number
            
            
var domTest = document.getElementById("test1").outerHTML;
            
            alert(domTest);
            
            alert(domTest.avoidXSS());
            alert(domTest.removeHTML());


可能 avoidXSS 部分由于blog 有 xss 处理,所以看不全。建议下载源代码和 demo 试试。

下载 string.js 及  demo 


posted on 2010-03-23 20:31 -274°C 阅读(3746) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(21)

随笔分类(265)

随笔档案(242)

相册

JAVA网站

关注的Blog

搜索

  •  

积分与排名

  • 积分 - 908980
  • 排名 - 40

最新评论