博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS的一些扩展:String、StringBuilder、Uri
阅读量:5986 次
发布时间:2019-06-20

本文共 6652 字,大约阅读时间需要 22 分钟。

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

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

ExpandedBlockStart.gif
; 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; 
    }; 
}

 测试代码:

ExpandedBlockStart.gif
代码
<!
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
>
 

 

 

效果:

作者: 
出处: 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-、和。http://www.cnblogs.com/whitewolf/archive/2010/11/19/1881490.html

你可能感兴趣的文章
spring扩展点之四:Spring Aware容器感知技术,BeanNameAware和BeanFactoryAware接口,springboot中的EnvironmentAware...
查看>>
Android -- SharedPreferences存储信息
查看>>
C++的函数重载和main函数之外的工作
查看>>
js中的hasOwnProperty和isPrototypeOf方法
查看>>
杂七杂八的面试概念
查看>>
[游戏学习29] Win32 图像处理1
查看>>
递归算法浅谈
查看>>
赵雅智_ListView_BaseAdapter
查看>>
NoSQL数据库:数据的一致性
查看>>
20款优秀的国外 Mobile App 界面设计案例
查看>>
github简单使用教程
查看>>
ExtJS4.1 ExtJS TabPanel 双击标签关闭该页
查看>>
手绘彩色光圈
查看>>
高并发高流量网站架构(转)
查看>>
使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库(转)
查看>>
娓娓道来c指针 (0)c语言的梦魇:c指针
查看>>
二八原则
查看>>
samsungGalaxyS4USB驱动
查看>>
进程调度
查看>>
VB调用VC dll的返回方式
查看>>