① js怎么把数组强制转换为字符串
可以采用字符串抄拼接的的方式。
例如:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title></title>
<scripttype="text/javascript">
//数组
vararr=['1',[2],
[3]
];
</script>
</head>
<scriptlanguage="JavaScript">
//转换类型
varstrs=arr+"";
//测试将数组转换以后的类型
vart=typeofstrs;
document.write("数组arr转换成t的类型是:"+t);
</script>
<body>
</body>
</html>
执行结果:
② JS实现HTML标签转义及反转义
简单说一下业务场景,前台用户通过input输入内容,在离开焦点时,将内容在div中显示。
这时遇到一个问题,如果用户输入了html标签,则在div显示中,标签被解析。
由于是纯前端操作,不涉及后端,因此需要通过js对输入内容进行转义。
这里提供一个非常简单有效的转义方案,利用了innerHTML和innerText
注:火狐不支持innerText,需要使用
textContent
属性,而IE早期版本不支持此属性,为了同时兼容IE及火狐,需要进行判断操作.
因为innerText(textContent)会获取纯文本内容,忽略html节点标签,而innerHTML会显示标签内容,
所以我们先将需转义的内容赋值给innerText(textContent),再获取它的innerHTML属性,这时获取到的就是转义后文本内容。
代码如下:
function
HTMLEncode(html)
{
var
temp
=
document.createElement("div");
(temp.textContent
!=
null)
?
(temp.textContent
=
html)
:
(temp.innerText
=
html);
var
output
=
temp.innerHTML;
temp
=
null;
return
output;
}
var
tagText
=
"<p><b>123&456</b></p>";
console.log(HTMLEncode(tagText));//<p><b>123&456</b></p>
通过测试结果,可以看到html标签及&符都被转义后保存。
同理,反转义的方法为先将转义文本赋值给innerHTML,然后通过innerText(textContent)获取转义前的文本内容
function
HTMLDecode(text)
{
var
temp
=
document.createElement("div");
temp.innerHTML
=
text;
var
output
=
temp.innerText
||
temp.textContent;
temp
=
null;
return
output;
}
var
tagText
=
"<p><b>123&456</b></p>";
var
encodeText
=
HTMLEncode(tagText);
console.log(encodeText);//<p><b>123&456</b></p>
console.log(HTMLDecode(encodeText));
//<p><b>123&456</b></p>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
③ js 如何给中文转码
需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,版新建html文件,例如:index.html。
④ js 如何把字符串转化为日期
varstr="2010-08-01";
//转换日期格式
str=str.replace(/-/g,'/');//"2010/08/01";
//创建日期对象
vardate=newDate(str);
//加一天
date.setDate(date.getDate()+1);
反之,日期格式化为字符串
//完整的格式化 var time2 = new Date().format("yyyy-MM-dd hh:mm:ss");
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
//处理年份
var reYear = /(y+)/;
var resultYear = reYear.exec(fmt);
if (resultYear)
{
var yearformatPart = resultYear[0];//匹配到的格式化字符
var yearVal = (this.getFullYear() + "").substr(4 - yearformatPart.length);
fmt = fmt.replace(yearformatPart, yearVal);
}
for (var k in o) {
var re = new RegExp("(" + k + ")");
var re = re.exec(fmt);
if (re) {
var Val = "" + o[k];//本次需要替换的数据
var formatPart = re[0];//匹配到的格式化字符
var replaceVal = (formatPart.length == 1) ? (Val) : (("00" + Val).substr(Val.length));
fmt = fmt.replace(formatPart, replaceVal);
}
}
return fmt;
}