重发一个:var replaceWord=function(str,rl,b) {// b=typeof(b)==='undefined'?"":b; var reg=[],sep=b+"|"+b; for(var n in rl) reg[reg.length]=n; reg='('+b+reg.join(sep)+b+')'; return str.replace(new RegExp(reg,"g"),function($,$1) { return rl[$1] }) }; var str="hello,this is \"Sky\",can i speak to 'tt'"; var rl={"'":"‘","\"":"“",",":",","i":"I"}; str=replaceWord(str,rl); //str=replaceWord(str,rl,"\\b"); alert(str);
str=str.replace(/('|")/g,function($,$1) {
return {
"'":"‘",
"\"":"“"
}[$1]
});
alert(str);
<div>
<转成这样的 js函数是什么?
这个在后台处理就晚啦。。因为已经出错啦。所以只能放到前台进行操作啦。
请问有什么解决办法啊?
b=typeof(b)==='undefined'?"":b;
var reg=[],sep=b+"|"+b;
for(var n in rl)
reg[reg.length]=n;
reg='('+b+reg.join(sep)+b+')';
return str.replace(new RegExp(reg,"g"),function($,$1) {
return rl[$1]
})
};
var str="hello,this is \"Sky\",can i speak to 'tt'";
var rl={"'":"‘","\"":"“",",":",","i":"I"};
str=replaceWord(str,rl);
//str=replaceWord(str,rl,"\\b");
alert(str);
str=str.replace(/('|")/g,function($,$1) {
return {
"'":"‘",
"\"":"“"
}[$1]
});
alert(str);
var htmlEncode=function(str) {//HTML des encode.
var res=[];
for(var i=0;i < str.length;i++)
res[i]=str.charCodeAt(i);
return "&#"+res.join(";&#")+";";
};
我这个代码没错吧?
太好人啦,都不知道该怎样感谢你啦
function escapeHTML(s) {
with (document.createElement("div")) {
appendChild(document.createTextNode(str));
return innerHTML;
}
}
// 或者
function escapeHTML(s) {
return escape(s).replace(/%u([\da-f]{4})|%([\da-f]{2})/ig, '&#x$1$2;');
}
你看下,我没有替换为中文的引号。
而是加上一个转意字符 \" 或者 \'
alert(str);
str=str.replace(/'/g,"‘").replace(/"/g,"“");
alert(str);
//这个应该理解起来更简单啊!
.replace(/(^\s+)|(\s+$)/g, '').replace(/(\\)/g, "|").replace(/("|')/g, "\\$1")
我这样算是解决啦