第一种方法 , 用连接符“+”把要连接的字符串连起来:
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位确定起始位置。