在最近一个小屁项目中,没有服务端(其实服务端是人家早已经写好的服务),留给我的就只有一大堆的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++) {
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];
this.insertformat = function() {
this.insert(arguments[0], s);
this.length = function() {
return sb.length;
this.appendline = function() {
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() {
if (r.length > 1) {
return unescape(r[1]);
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;
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 id="result3">
</body>
</html>
效果: