`
Jack-chen
  • 浏览: 69707 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

难舍Javascript 篇 之 扩展String 函数

阅读更多
工作需要,暂时要告别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());
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics