【问题标题】:Error when there is new line in javascript array [duplicate]javascript数组中有新行时出错[重复]
【发布时间】:2017-01-13 10:57:34
【问题描述】:

我将数组转换为 json 以使用数据。数组中有断线时出现错误。

这是我的代码:

 <script>
        function showKnowledgeItem(id) {

            var title = [];
            var text = [];

    <?php
    $query = (new \yii\db\Query())
            ->select('')
            ->from('fc_knowledge')
            ->all();

    $arr = array();
    $arr = json_encode($query, true);
    $json_output = json_decode($arr);

    foreach ($json_output as $title) {
        ?>
                title [<?= $title->id ?>] = ["<?= $title->title ?>"];
        <?php
    }
    foreach ($json_output as $content) {
        ?>
                text [<?= $content->id ?>] = ["<?= $content->content ?>"];
        <?php
    }
    ?>
        }
    </script> 

此代码运行良好。但是当数组中有new linebreak line时,就不起作用了。

这张图的错误很明显:

有谁知道我必须解决这个问题。让你大吃一惊。

【问题讨论】:

  • 这样的新行不是有效的 json。如果要保留新行,则必须对其进行转义。见documentation
  • 如果您使用 PHP 5.0.2 或更高版本,您可以使用$str = str_replace(PHP_EOL, '', $str);

标签: javascript php json yii2 yii2-advanced-app


【解决方案1】:

删除$title-&gt;title中的新行

trim(preg_replace('/\s\s+/', '<br/>', $title->title ));

【讨论】:

  • Malayaita 但我需要换行。
  • 它会删除所有中断的文本吗?
  • 是的,那么您需要将新行替换为
    。我改了代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2019-07-26
  • 2013-03-21
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
相关资源
最近更新 更多