如何在JavaScript中替换HTML编码的字符?

时间:2012-12-05 07:21:11

标签: javascript jquery

我有一个XML,我会在需要时动态解析并放置在HTML中。

它有一些换行符
,我想用
	替换它,因此它有适当的可读格式。 出于某种原因,
未创建LineFeed。

var lput=$(xml).find('lput_info').attr('output');

lput=lput.ReplaceAll("
", "
	");

'<table class="jpanelTable" >'+
    '<tbody>'+              
    '<tr width="100%">'+
        '<th class="thPanel">Output</th>'+
        '<td class="tdPanel"><pre class="preWrap">'+lput+'</pre></td>'+
    '</tr>'+                
    '</tbody>'+
'</table>'

使用here中的此功能:

String.prototype.ReplaceAll = function(stringToFind,stringToReplace){
    var temp = this;
    var index = temp.indexOf(stringToFind);
    while(index != -1){
        temp = temp.replace(stringToFind,stringToReplace);
        index = temp.indexOf(stringToFind);
    }
    return temp;
}

更新

.preWrap {
    overflow: auto;
    font-family: "Consolas",monospace;
    font-size: 9pt;
    text-align:left;
    background-color: #FCF7EC;
    overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not
    white-space: pre-wrap; /* css-3 */
    white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
    word-wrap: break-word; /* Internet Explorer 5.5+ */
    margin: 0px 0px 0px 0px;
    padding:5px 5px 3px 5px;
    white-space : normal; /* crucial for IE 6, maybe 7? */
}

xml输入字符串的一部分:

"bpmz.a&#xa;/usr/lib/libdl.a(shr_64.o)&#xa;/usr/lib/libperfstat.a(shr_64.o)&#xa;/usr/lib/lib.a"

1 个答案:

答案 0 :(得分:1)

有些人可能会建议创建一个临时div的(jQuery)函数,将文本放在那里,然后获取div的内容,以解码字符串。

虽然它的实现很简单,但它相当不安全,因为你几乎要求用户在字符串中放入各种html标签。

I'd suggest using these functions
Requires a second function

这些比div替代方案更安全。