天天看點

JS的一些擴充:String、StringBuilder、Uri

在最近一個小屁項目中,沒有服務端(其實服務端是人家早已經寫好的服務),留給我的就隻有一大堆的html和js,寫的好煩躁,是以就寫了幾個擴充。

多個不說的,這裡隻是記錄,code附上,便以後查詢:

JS的一些擴充:String、StringBuilder、Uri
JS的一些擴充:String、StringBuilder、Uri

; 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(/</g, '<').replace(/>/g, '>').replace(/"/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; 

}

JS的一些擴充:String、StringBuilder、Uri

 測試代碼:

JS的一些擴充:String、StringBuilder、Uri
JS的一些擴充:String、StringBuilder、Uri

代碼

<!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> 

JS的一些擴充:String、StringBuilder、Uri

效果:

JS的一些擴充:String、StringBuilder、Uri

繼續閱讀