Eval on variable导致非法令牌

时间:2015-10-31 17:10:19

标签: javascript eval

我有以下变量设置按原样

dialog.i_intro.value="Hi Im Jonathan<br />
<br />
Hi Im Jonathan<br />
<br />
Hi Im Jonathan";

要实现这一目标,我必须使用newlines执行html breaks的字符串替换。 我还尝试使用newlines执行此代码并产生相同的结果。当我将此javascript代码插入eval函数时,它会破坏代码。 我无法更改使用评估功能的程序

以下是我在开发人员工具控制台

中添加的内容
    eval(dialog.i_intro.value="Hi Im Jonathan<br />
    <br />
    Hi Im Jonathan<br />
    <br />
    Hi Im Jonathan";);

我在开发人员工具控制台

上测试了代码

这是我放入控制台的内容。

这是输出:

未捕获的SyntaxError:意外的令牌ILLEGAL(...)

    with (typeof __commandLineAPI !== 'undefined' ? __commandLineAPI : { __proto__: null }) {
    eval(dialog.i_intro.value="Hi Im Jonathan<br />
    <br />
    Hi Im Jonathan<br />
    <br />
    Hi Im Jonathan";);
    }

不太清楚在这做什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您需要在JavaScript中使用换行符\n字符,而不是字符串中的实际中断。

dialog.i_intro.value="Hi Im Jonathan<br />\n    <br />\n    Hi Im Jonathan<br />\n    <br />\n    Hi Im Jonathan";

请注意,字符串中的额外空格是由于它未在示例中左对齐。

如果您使用的是PHP服务器端,则替换将如下所示。请注意,您需要在替换中转义反斜杠以将\n打印到字符串中。

$string = str_replace("\n", "\\n", $string);