ExtJs 2.1 中的htmlEncode和htmlDecode不可逆

Ext JS 2.1 中的 Ext.util.Format 提供了HTML编码解码方法,如下所示:

 htmlEncode : function(value){ return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/").replace(/</g, "<").replace(/"/g, '"'); },   

 

发现这两个方法不可逆。

比如,htmlEncode(">") 结果是"&gt;"。

但是反过来,htmlDecode("&gt;")结果是">"。

注意这个htmlDecode方法。先处理了"&",替换成"&",然后在处理后面三个符号时,刚替换产生的"&"有可能被再次处理。

正确的做法是,在htmlDecode中,最后处理"&"。

你可能感兴趣的:(HTML/JS/CSS)