JS的一些扩展:String、StringBuilder、Uri

在最近一个小屁项目中,没有服务端(其实服务端是人家早已经写好的服务),留给我的就只有一大堆的Html和JS,写的好烦躁,所以就写了几个扩展。

多个不说的,这里只是记录,code附上,便以后查询:

代码
; String.format  =   function () { 
    
var  s  =  arguments[ 0 ]; 
    
for  ( var  i  =   0 ; i  <  arguments.length  -   1 ; i ++ ) { 
        
var  reg  =   new  RegExp( " \\{ "   +  i  +   " \\} " " gm " ); 
        s 
=  s.replace(reg, arguments[i  +   1 ]); 
    }

    
return  s; 
};


String.prototype.endsWith 
=   function (suffix) { 
    
return  ( this .substr( this .length  -  suffix.length)  ===  suffix); 
};

String.prototype.startsWith 
=   function (prefix) { 
    
return  ( this .substr( 0 , prefix.length)  ===  prefix); 
};

String.prototype.isPositiveInteger 
=   function () { 
    
return  ( new  RegExp( / ^[1-9]\d*$ / ).test( this )); 
};

String.prototype.trim 
=   function () { 
    
return   this .replace( / (^\s*)|(\s*$)|\r|\n / g,  "" ); 
};

String.prototype.trimLeft 
=   function () { 
    
return   this .replace( / (^\s*)|\r|\n / g,  "" ); 
};

String.prototype.trimRight 
=   function () { 
    
return   this .replace( / (\s*$)|\r|\n / g,  "" ); 
};

String.prototype.isInteger 
=   function () { 
    
return  ( new  RegExp( / ^\d+$ / ).test( this )); 
}; 
String.prototype.isNumber 
=   function (value, element) { 
    
return  ( new  RegExp( / ^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$ / ).test( this )); 
};

String.prototype.isValidMail 
=   function () { 
    
return  ( new  RegExp( / ^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$ / ).test( this .trim())); 
};

String.prototype.isPhone 
=   function () { 
    
return  ( new  RegExp( / (^([0-9]{3,4}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0-9]{3,4}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$) / ).test( this )); 
};

String.prototype.isURL 
=   function () { 
    
return  ( new  RegExp( / ^[a-zA-z]+:\ / \ / (\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ / ).test( this )); 
};

String.prototype.trans 
=   function () { 
    
return   this .replace( / &lt; / g,  ' < ' ).replace( / &gt; / g,  ' > ' ).replace( / &quot; / g,  ' " ' ); 
};


function  StringBuilder() { 
    
var  sb  =   new  Array(); 
    
if  (arguments[ 0 !=  undefined  &&  arguments[ 0 !=   null ) { 
        sb[
0 =  arguments[ 0 ]; 
    } 
    
this .append  =   function (str) { 
        sb[sb.length] 
=  str; 
    }; 
    
this .appendFormat  =   function () { 
        
var  s  =  arguments[ 0 ]; 
        
for  ( var  i  =   0 ; i  <  arguments.length  -   1 ; i ++ ) { 
            
var  reg  =   new  RegExp( " \\{ "   +  i  +   " \\} " " gm " ); 
            s 
=  s.replace(reg, arguments[i  +   1 ]); 
        } 
        sb[sb.length] 
=  s; 
    }; 
    
this .toString  =   function () { 
        
/*         var s = ""; 
        for (var i = 0; i < sb.length; i++) { 
        s += sb[i]; 
        } 
        return s;
*/  
        
if  (arguments[ 0 !=  undefined  &&  arguments[ 0 !=   null ) { 
            
return  sb.join(arguments[ 0 ]); 
        } 
        
return  sb.join( "" ); 
    }; 
    
this .replace  =   function (index, str) { 
        sb[index] 
=  str; 
    }; 
    
this .replaceFormat  =   function () { 
        
var  s  =  arguments[ 1 ]; 
        
for  ( var  i  =   0 ; i  <  arguments.length  -   2 ; i ++ ) { 
            
var  reg  =   new  RegExp( " \\{ "   +  i  +   " \\} " " gm " ); 
            s 
=  s.replace(reg, arguments[i  +   2 ]); 
        } 
        
this .replace(arguments[ 0 ], s); 
    }; 
    
this .remove  =   function (index) { 
        
for  ( var  i  =  index  +   1 ; i  <  sb.length; i ++ ) { 
            sb[i 
-   1 =  sb[i]; 
        } 
        sb.length 
=  sb.length  -   1 ;

    }; 
    
this .insert  =   function (index, str) { 
        
var  len  =  sb.length  +   1
        
for  ( var  i  =  index; i  <  len; i ++ ) { 
            sb[i 
+   1 =  sb[i]; 
        } 
        sb[index] 
=  str; 
    }; 
    
this .insertFormat  =   function () { 
        
var  s  =  arguments[ 1 ]; 
        
for  ( var  i  =   0 ; i  <  arguments.length  -   2 ; i ++ ) { 
            
var  reg  =   new  RegExp( " \\{ "   +  i  +   " \\} " " gm " ); 
            s 
=  s.replace(reg, arguments[i  +   2 ]); 
        } 
        
this .insert(arguments[ 0 ], s); 
    }; 
    
this .length  =   function () { 
        
return  sb.length; 
    }; 
    
this .appendLine  =   function () { 
        
if  (arguments[ 0 !=  undefined  &&  arguments[ 0 !=   null ) { 
            
this .append(arguments[ 0 ]); 
        } 
        
else  { 
            
this .append( " \r\n " ); 
        } 
    } 
}; 
/*  TODO:test utils 
var sb = new StringBuilder(true); 
sb.append("123"); 
sb.appendFormat("{0}+{1}", 22, "22"); 
sb.appendFormat("{0}+{1}", 3333, "333"); 
//alert(sb.toString()); 
sb.insert(1, " test insert "); 
sb.insertFormat(1, "{0}***{1}", 111, "11 "); 
sb.replaceFormat(0, "{0}%%%{1}", 000, "00"); 
alert(sb.toString(" g "));
*/  
function  Uri(urlstr) { 
    
var  uri  =  urlstr; 
    
if  (uri  ==  undefined  ||  uri  ==   null   ||  uri  ==   "" ) { 
        uri 
=  window.location.href; 
    }; 
    
this .Host  =   function () { 
        
var  r  =  uri.split( " ? " ); 
        
if  (r.length  >   0 ) { 
            
return  r[ 0 ]; 
        } 
        
return   ""
    }; 
    
this .searchString  =   function () { 
        
var  r  =  uri.split( " ? " ); 
        
if  (r.length  >   1 ) { 
            
return  unescape(r[ 1 ]); 
        } 
        
return   ""
    }; 
    
this .Params  =   function () { 
        
var  search  =   this .searchString(); 
        
if  (search  ==   ""
            
return   null
        
var  obj  =   new  Array(); 
        
var  pair  =  search.split( " & " ); 
        
if  (pair.length  >   0 ) {

            
for  ( var  i  =   0 ; i  <  pair.length; i ++ ) {

                
var  pairArr  =  pair[i].split( " = " ); 
                obj[pairArr[
0 ]]  =  pairArr[ 1 ]; 
            } 
        } 
        
return  obj; 
    }; 
    
this .QueryParam  =   function (key, def) { 
        
var  obj  =   this .Params(); 
        
if  (obj  !=   null ) { 
            
var  value  =  obj[key]; 
            
if  (value  !=  undefined  &&  value  !=   null ) { 
                
return  value; 
            } 
        } 
        
return  def; 
    }; 
}


 测试代码:

代码


<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22 >  
< html  xmlns ="http://www.w3.org/1999/xhtml%22> 
<head> 
    <title></title>    
    <style type="
text/css" >  
        body 
        { 
            background-color: Black; 
        } 
        div 
        { 
            border-bottom-width: 1px; 
            border-left-width: 0px; 
            border-top-width: 1px; 
            border-right-width: 0px; 
            border-style: solid; 
            border-color: Lime; 
            width: 98%; 
            margin: 8,8; 
            padding: 10px; 
            background-color: Black; 
            color: Olive; 
        } 
    
</ style >

    
< script  src ="Wolf.Utils.JSExtesion.js"  type ="text/javascript" ></ script >

    
< script  type ="text/javascript" >

        
function  StringTest() {

            document.getElementById(
" result1 " ).innerHTML  =  String.format( " My blog : cnBlogs:{0} ,CSDN :{1} " " http://www.cnblogs.com/whitewolf/%22,  " http: // blog.csdn.net/grzx2210%22) 
             +   " <br/> "   +   "  Wolf  " .trim()  +   "  Wolf  " .trimLeft()  +   "  Wolf  " .trimRight()  +   " 122 " .isInteger(); 
        }

        
function  StringBuilderTest() { 
            
var  sb  =   new  StringBuilder(); 
            sb.appendFormat(
" My blog : cnBlogs:{0} ,CSDN :{1} " " http://www.cnblogs.com/whitewolf/%22,  " http: // blog.csdn.net/grzx2210%22); 
            sb.append( " <br/> " ); 
            sb.append(
"  remove " ); 
            sb.remove(
2 ); 
            sb.append(
" whitewolf " ); 
            sb.appendLine(
" <br/> " ); 
            document.getElementById(
" result2 " ).innerHTML  =   " tostring() "   +  sb.toString()  +   " <br/>tostring(';') "   +  sb.toString( " ; " ); 
        } 
        
function  UriTest() { 
            
var  uri  =   new  Uri(); 
            document.getElementById(
" result3 " ).innerHTML  =   " searchString: "   +  uri.searchString  +   " <br/>id= "   +  uri.QueryParam( " id " " id empty " ); 
        } 
        
function  Test() { 
            StringTest(); 
            StringBuilderTest(); 
            UriTest();

        }; 
    
</ script >

</ head >  
< body  onload ="Test();" >  
    
< div  id ="result1" >  
    
</ div >  
    
< div  id ="result2" >  
    
</ div >  
    
< div  id ="result3" >  
    
</ div >  
</ body >  
</ html >  

 

 

效果:

JS的一些扩展:String、StringBuilder、Uri_第1张图片

你可能感兴趣的:(StringBuilder)