js 如何优雅的拼接 字符串

JavaScript012

js 如何优雅的拼接 字符串,第1张

JS中有三种字符串连接方式:

第一种方法 , 用连接符“+”把要连接的字符串连起来:

str="a"str+="b"

第二种方法, 以数组作为中介用 join 连接字符串:

var arr=new Array()arr.push(a)arr.push(b)var str=arr.join("")

第三种方法, 利用对象属性来连接字符串:

function stringConnect(){this._str_=new Array()}stringConnect.prototype.append=function(a){this._str_.push(a)}stringConnect.prototype.toString=function(){return this._str_.join()}var mystr=new stringConnect

mystr.append("a") var str=mystr.toString()

JS中三种字符串连接方式的性能比较:

第一种,方法毫无疑问是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便;

第二种,这种方法要比第一种消耗更少的资源,速度也更快;

第三种,方法加入了随机参数,应该是避免了缓存的影响的。

感觉还是有点复杂,可用。可加双引号。

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8" />

<script src="jquery-2.0.2.min.js"></script>

<title>无标题文档</title>

<script language="javascript" type="text/javascript">

    window.onload = function(){

        //tabToJSON("tab")

        tabToJSONForJquery("tab")

    }

    function tabToJSON(id) {

        var trs = document.getElementById(id).getElementsByTagName("tr")//获得tr数组

        var titles = trs[0].getElementsByTagName("td")    //获得表头td数组

        var json = ""

        for(var i = 1 i < trs.length i++) {

            var tds = trs[i].getElementsByTagName("td")    

            json += "{" 

            //拼装json

            for(var j = 0 j < tds.length j++) 

                json += titles[j].innerHTML + ":" + tds[j].innerHTML + ","

            json = json.substring(0, json.length - 1) + "},"

        }

        json = "[" + json.substring(0, json.length - 1) + "]"

        document.getElementById("test").innerHTML = json

    }

    function tabToJSONForJquery(id) {

        var titles = $("#" + id).find("tr:first td")    //获得表头td数组

        //遍历非表头的,tr、td...拼装json

        var json = "[" + $("#" + id).find("tr:not(:first)").map(function(i, e) {

            return "{" + $(e).children("td").map(function(j, el) {

                return $(titles[j]).html() + ":" + $(el).html()

            }).get().join(",") + "}"

        }).get().join(",") + "]" 

        $("#test").html(json)

    }

</script>

</head>

<body>

<table id="tab">

    <tr>

        <td>test1</td>

        <td>test2</td>

        <td>test3</td>

    </tr>

    <tr>

        <td>val1</td>

        <td>val2</td>

        <td>val3</td>

    </tr> 

    <tr>

        <td>val11</td>

        <td>val22</td>

        <td>val33</td>

    </tr>   

</table>

<div id="test"></div>

</body>

</html>

重新放下JS,好难看

function tabToJSON(id) {

        var trs = document.getElementById(id).getElementsByTagName("tr")//获得tr数组

        var titles = trs[0].getElementsByTagName("td")    //获得表头td数组

        var json = ""

        for(var i = 1 i < trs.length i++) {

            var tds = trs[i].getElementsByTagName("td")    

            json += "{" 

            //拼装json

            for(var j = 0 j < tds.length j++) 

                json += titles[j].innerHTML + ":" + tds[j].innerHTML + ","

            json = json.substring(0, json.length - 1) + "},"

        }

        json = "[" + json.substring(0, json.length - 1) + "]"

        document.getElementById("test").innerHTML = json

    }

    function tabToJSONForJquery(id) {

        var titles = $("#" + id).find("tr:first td")    //获得表头td数组

        //遍历非表头的,tr、td...拼装json

        var json = "[" + $("#" + id).find("tr:not(:first)").map(function(i, e) {

            return "{" + $(e).children("td").map(function(j, el) {

                return $(titles[j]).html() + ":" + $(el).html()

            }).get().join(",") + "}"

        }).get().join(",") + "]"

        $("#test").html(json)

    }

String.prototype.finded = function(){

var arg = arguments

var me = this.toLowerCase()

var re = false

var list = []

if (arg.length >0)

{list = arg[0].toString().split(",")}

for (var i=0i<list.lengthi++)

{ if (me.indexOf(list[i].toLowerCase()) >= 0)

{ re = truebreak }

js常用的字符串方法分析

##字符串##

字符串:由0个或多个字符组成,被成对的英文单引号或双引号包含起来的。字符编码:每一个字符在计算机存储的编号。计算机会保存有一套或几套用于标注编号与字符对应关系的字典。(字符集)计算机存储单位位:bit->0/1能存2个字节:byte->8bit可存256个不同的字。

KB:1KB=1024byte;字符串的操作,属性(此中str代表字符串)length:只读属性,表示字符串的长度str.charAt(index):返回str中index位置上对应的字符,若超出当前位置返回空字符。str.indexOf(char):返回char在str中首次出现的位置。

从左至右,若不存在返回-1.str.lastIndexOf(char):返回char在str中最后一次出现的位置,从右至左,若不存在返回-1.str.charCodeAt()str.substring(start,end):截取并返回字符串,从start位置开始到end位置结束(不包含end位置的字符)start:起始位默认为0,如果是负数,转成为0.end:结束位,默认为字符串的长度,如果是负数,转成0.若start比end大会交换位置。

str.substr(start,count):截取从start位置开始,截取count个字符,并返回start:截取的起始位置,默认为0,支持负数count:截取的个数,默认为length;不支持负数str.slice(start, end)截取从start的位置开始,到end位置结束<不包含end位置上的字符>的字符,并返回start: 起始位,默认为0,如果是负数,则用字符串的长度+这个负数值,或者是从右向左数start位确定起始位置。