htmlEncode:function (html){
//1.首先动态创建一个容器标签元素,如DIV
var temp = document.createElement ("div")
//2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)
(temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html)
//3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了
var output = temp.innerHTML
temp = null
return output
},
/*2.用浏览器内部转换器实现html解码*/
htmlDecode:function (text){
//1.首先动态创建一个容器标签元素,如DIV
var temp = document.createElement("div")
//2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)
temp.innerHTML = text
//3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。
var output = temp.innerText || temp.textContent
temp = null
return output
},
/*3.用正则表达式实现html转码*/
htmlEncodeByRegExp:function (str){
var s = ""
if(str.length == 0) return ""
s = str.replace(/&/g,"&")
s = s.replace(/
s = s.replace(/>/g,">")
s = s.replace(/ /g," ")
s = s.replace(/\'/g,"'")
s = s.replace(/\"/g,""")
return s
},
/*4.用正则表达式实现html解码*/
htmlDecodeByRegExp:function (str){
var s = ""
if(str.length == 0) return ""
s = str.replace(/&/g,"&")
s = s.replace(/</g,"<")
s = s.replace(/>/g,">")
s = s.replace(/ /g," ")
s = s.replace(/'/g,"\'")
s = s.replace(/"/g,"\"")
return s
}
}
最直接的方法是toString。如:var num=123var str=num.toString()。还可以在字符串后面加一个空字符串,如:var num=123var str=num+''感觉这种方式没有改变它的本质。你可以试一试。
toString()使用对象的toString函数把对象转化为字符串。
// plain objectvar obj = {}
obj.toString() // 返回"[object Object]" // 基本数据封装类
var num = new Number(2.2)
num.toString() // 返回"2.2" // 数组
var arr = [1,2,3]
arr.toString() // 返回"1,2,3" // 正则对象
var reg = new RegExp('\\d')
reg.toString() // 返回"/\d/" // 自定义对象
function Person(name, age) {
this.name = name
this.age = age
}
Person.prototype.toString = function () {
return 'name is ' + this.name + 'and age is ' + this.age
}
var p = new Person('Scott', 31)
p.toString() // 返回"name is Scott and age is 31"
JSON.stringify
使用json序列化的方式把对象转换为字符串,该方式会把一个对象中所有标记为
enumerable的属性序列化为json格式的字符串。
// plain objectvar obj = {name: 'Scott', age: 31}
JSON.stringify(obj) // 返回"{"name":"Scott","age":31}" // 基本数据封装类
var num = new Number(2.2)
JSON.stringify(num) // 返回"2.2" // 数组
var arr = [1,2,3]
JSON.stringify(arr) // 返回"[1,2,3]" // 自定义类型
function Person(name, age, maritalStatus) {
this.name = name
this.age = age
// 由于婚姻状况是隐私的属性,不希望序列化字符串的时候暴露给他人,因此这里设置属性为不可枚举的
Object.defineProperty(this, 'maritalStatus', {
enumerable: false,
configurable: false,
writable: true,
value: maritalState || 'unknown'
})
this.maritalStatus = maritalStatus
}
var p = new Person('Scott', 31, 'married')
// 序列化的时候是没有maritalStatus的
JSON.stringify(p) // 返回"{"name":"Scott","age":31}"
// 但是maritalStatus确实真实存在于对象中的
p.maritalStatus // 返回"married"