Javascript 扩展String 函数

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

/* *
 * @brief  扩展原生字符串 
 * @author [email protected]
 
*/

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,  " < " );
        strTemp 
=  strTemp.replace( />/ g,  " > " );
        strTemp 
=  strTemp.replace( / \ " /g,  " & quot; " );
        return strTemp;    
    } ,
    
    /**
     * @brief 获取字符串的字节长度 汉字默认双字节
     */
    byteLength : function()
    {
          return this.replace(/[^\x00-\xff]/g,
" ** " ).length;
    },
    
    /**
     * @brief     除去HTML标签
     * @example     " test1 " >aaaa
  =>  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 


你可能感兴趣的:(web前端,JavaScript,Gmail,prototype,Blog,工作)