2010-05-03 87 views
3

我有一些代码在JavaScript:如何解码JavaScript中的一个变量中的字符串?

var location = '"HCM - NYC (New York, NY)"'; 
td_Details.innerText = location; 

现在我想的文本位置解码为

“HCM - NYC(纽约)”

请指点。谢谢。

+1

你不想调用变量'location',这是一个保留字。这对我来说效果不佳。 – Kobi 2010-05-03 09:50:05

+1

@Kobi它不是一个保留字,它只是一个浏览器附加到'window'对象的全局变量。 – Matt 2010-05-03 09:53:07

+1

@Kobi'位置'不是保留字。它是一个客户端对象,所以使用它可能是不明智的,但没有负面影响(除非你想使用该对象)。 – Tomalak 2010-05-03 10:00:42

回答

3

没有在JavaScript中没有具体的功能,将解码HTML实体,但是你可以指定一个innerHTML属性的元素,然后读出来。

x = document.createElement('div'); 
x.innerHTML = ""test""; 
console.log(x.innerHTML); // => "test" 

这将适用于任何HTML实体,而不仅仅是&“

编辑

如下指出的那样,你中途有,你只是使用了错误的性质。

变化:

td_Details.innerText = location; 

到:

td_Details.innerHTML = location; 

以供将来参考,innerHTML在所有浏览器。 innerText不是。

+1

+1 - 他已*有* HTML元素,'td_Details'。他只是使用了错误的属性 – Tomalak 2010-05-03 09:52:07

+0

@Tomalak - 我甚至没有注意到。 – Matt 2010-05-03 09:53:45

2

删除&“只需使用以下内容:

location = location.replace(/"/g, ''); 

您可能实际上意图在报告中包含引号。要做到这一点,做到这一点,而不是:

location = location.replace(/"/g, '"'); 
+0

好吧,这对我有意义。谢谢。 – jeff 2010-05-03 23:54:38

+0

您的代码将其删除,但我认为您想用报价替换它 - '替换(/ "/g,'“')' – studgeek 2012-03-21 18:57:40

+0

嗯,是的,我错误地将报价误解为未包括在期望的输出中。我会更新我的答案;谢谢! – 2012-03-22 11:20:07