使用javascript替换引号

时间:2016-10-05 10:12:52

标签: javascript

我们正在通过用户输入构建JSON数据。除非用户输入quotes作为第一个字母,否则它工作正常。

我的输出看起来像在stringify之后。

{"text":""'><img src=x onerror=alert('1')>"}

如果使用的JSON数据没有首先输入引号。

{"text":"><img src=x onerror=alert('1')>"}

我正在尝试更换&#34;&#34;&#39;用&#34;但这对我不起作用。 fiddle

实际结果

{"text":""'><img src=x onerror=alert('1')>"}

期望的结果

{"text":"><img src=x onerror=alert('1')>"}

2 个答案:

答案 0 :(得分:0)

请尝试以下方法:

var obj = {"text": "&quot;&#x27;&gt;&lt;img src=x onerror=alert(&#x27;1&#x27;)&gt;"}
var x = JSON.stringify(obj)

document.getElementById('test').innerHTML = x.toString().replace(/["]/g, "");

答案 1 :(得分:0)

你应该转换&amp; quot;到&#34;在更换之前&#34;&#34;用&#34;

请参考以下代码以使其正常工作。

var obj = {"text": "&quot;&#x27;&gt;&lt;img src=x onerror=alert(&#x27;1&#x27;)&gt;"}
var x = JSON.stringify(obj).replace('&quot;&#x27;','\"\'')

document.getElementById('test').innerHTML = x.toString().replace(/""'/,'\"')

另外,我已在here

更新了您的小提琴