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

时间:2010-09-30 11:38:30

标签: javascript eval escaping

var input;

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

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

方法1正常正常,但方法2无法正常工作输入换行符字符并显示“未终结字符串文字“即可。

无论如何,我需要使用 eval 存储值。所以请帮助我。

3 个答案:

答案 0 :(得分:4)

使用string.replace(/\r?\n/g, "\\n")转义换行符。

答案 1 :(得分:1)

那是因为你实际上正在评估看起来像这样的代码,这在javascript中是错误的

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

为什么需要评估?在这种情况下,它看起来不是必要的。也许我们可以帮助你绕过eval?

答案 2 :(得分:0)

尝试:

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

字符串(地址)将保证对象是字符串。 JSON.stringify将返回用eval解析的双引号字符串。