Ext JS 2.1 中的 Ext.util.Format 提供了HTML编码解码方法,如下所示:
htmlEncode : function(value){
return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/
},
htmlDecode : function(value){
return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "
},
发现这两个方法不可逆。
比如,htmlEncode(">") 结果是">"。
但是反过来,htmlDecode(">")结果是">"。
注意这个htmlDecode方法。先处理了"&",替换成"&",然后在处理后面三个符号时,刚替换产生的"&"有可能被再次处理。
正确的做法是,在htmlDecode中,最后处理"&"。
本文探讨了ExtJS 2.1版本中HTML编码与解码方法的问题。特别是htmlEncode与htmlDecode方法的实现存在不可逆性问题,并提出了改进方案。
332

被折叠的 条评论
为什么被折叠?



