如何使用javascript在eval中转义特殊字符?

问题描述 投票:5回答:3
var input;

// method 1
input = document.getElementById('address').value;
alert(input)

// method 2
eval('input = "'+document.getElementById('address').value+'"')
alert(input)

方法1起作用很好,但是方法2不能起作用,当输入newline字符并说“ unerminated string常量”时。

我仍然需要使用eval存储值。所以请帮助我。

javascript eval escaping
3个回答
4
投票
使用string.replace(/\r?\n/g, "\\n")转义换行符。

1
投票
这是因为您实际上正在评估看起来像这样的代码,这在javascript中当然是错误的

​var test = "Lorem ipsum dolor sit amet"; ​​​​​​​​​​​​​​​​​

您为什么需要评估?在这种情况下,似乎没有必要。也许我们可以帮助您解决评估问题?

0
投票
尝试:

const address = document.getElementById('address').value eval('input = ' + JSON.stringify(String(address)))

String(address)将保证该对象是一个字符串。JSON.stringify将返回一个用eval解析的双引号字符串。
© www.soinside.com 2019 - 2024. All rights reserved.