当我向服务器提交/发布数据时,我需要对其字符(相关字符)进行HTMLencode,因为通过设置validationRequest = false
禁用输入检查是< strong>不是一个好的做法。
所有解决方案都是最终替换字符串中的字符:
这是我写的。
function htmlEncode(str) {
str = str.replace(/\&/g, "&");
str = str.replace(/\</g, "<");
str = str.replace(/\>/g, ">");
str = str.replace(/ /g, " ");
return str;
}
但显然可以用更快的东西代替正则表达式(不要误会我的意思——我喜欢正则表达式)。
此外,使用索引 + 子字符串似乎很浪费。
最快的方法是什么?
最佳答案
function htmlEncode(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}
jsperf tests show如果您使用的是最新版本的浏览器,则此方法速度很快,而且可能是最快的选择
另一种方式也喜欢这个
function htmlEncode(value){
return $('<div/>').text(value).html();
}
function htmlDecode(value){
return $('<div/>').html(value).text();
}
关于javascript - 在 js 中替换字符串的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562043/