我正在尝试将一些文本解析为javascript字符串。本质上我在javascript中有一个String,其中包含另一个javascript字符串。以下是我在测试中的一些示例:
input1: '"This \\"should\\" work"'
output1: 'This "should" also work'
input2: '"Another working \\nstring\\n with newlines"'
output2: 'Another working \nstring\n with newlines'
// Should throw an exception since it would escape the last ":
input3: '"This should not work\\"'
// Should throw an exception since it contains an illegal newline
input4: '"This \n should also not work"'
我正在考虑在输入字符串上使用eval
,但感觉就像是黑客,我不确定它是否安全。 当我在Node中尝试时,它不会在它在运行我的测试时有效但在使用时没有运行我运行:input3
样本上产生错误。eval('"This should not work\\"')
in节点直接。
如何将上述样本输入解析为相应的输出,但仍会出现错误样本的错误?
修改
我最初的尝试:
output = input.slice(1, input.length - 1)
我的第二次尝试:
output = eval(input);
使用eval
似乎有效,但感觉就像一个黑客。