使用Regex解码HTML实体

时间:2013-03-29 15:43:41

标签: jquery html regex html-entities html-encode

我有大量的编码文本,如下所示:

<div id="readingPaneContentContainer" class="ClearBoth"  cmp="cmp" ulr="ulr"><a id="rpFocusElt" href="javascript:void(0)&#59;" style="height:1px&#59;width:1px&#59

我想对所有进行解码,所以要(示例):

<div id="readingPaneContentContainer" class="ClearBoth".....

可以使用正则表达式吗?

任何帮助都将不胜感激。

卢卡

2 个答案:

答案 0 :(得分:1)

请参阅此主题 - 它为您的jQuery提供了完美的解决方案:

How to decode HTML entities using jQuery?

var encoded = '&#60;div id&#61;&#34;readingPaneContentContainer&#34; class&#61;&#34;ClearBoth&#34;  cmp&#61;&#34;cmp&#34; ulr&#61;&#34;ulr&#34;&#62;&#60;a id&#61;&#34;rpFocusElt&#34; href&#61;&#34;javascript&#58;void&#40;0&#41;&#59;&#34; style&#61;&#34;height&#58;1px&#59;width&#58;1px&#59';

var decoded = $("<div/>").html(encoded).text();

不使用正则表达式。

答案 1 :(得分:0)

有些事情:

var regex = /&#(\d{2});/g;
var match;
while(match = regex.exec(myString)) {
    match = match[1];
    myString = myString.substring(0, regex.lastIndex - 5) + convert[match] + myString.substring(regex.lastIndex);
}

可能有效,但必须有更好的解决方案(考虑转换是一个进行转换的对象,例如80:'&lt;')。

解释:带有'global'标志的regex.exec允许循环正则表达式,regex.lastPoint的值是指向其余字符串的指针(尚未测试)。

修改
工作