【问题标题】:How to make new line from a xml response string如何从 xml 响应字符串创建新行
【发布时间】:2017-02-27 09:19:38
【问题描述】:

我从返回 XML 的 API 获取我的数据,我已经将其转换为 json,因为我使用 angularjs,我需要的字段,存储歌曲歌词,它使用这个符号 当它应该去新线。 例如:

You shout it loud↵But I can’t hear a word you say↵I’m talking loud, not saying much↵↵I’m criticized but all your bullets ricochet↵You shoot me down, but I get up

上面的示例是我在使用console.log() 时得到的,但是当我将此字段显示到我的HTML 页面时,它只是没有 的字符串。我不知道为什么它不显示在 HTML 中,如果它有什么新行的话,它就不会发生。

我想用<br /> 替换 是否可能?如果你们能帮助我,我将不胜感激。

更新: 我使用 angularjs 并用歌词填充模型并在我的 html 中用 {{lyric}} 显示它

但是正如你在图片中看到的,当我使用 console.log($scope.lyric) 时,字符串的格式很好,但是当我在 HTML 中显示相同的模型时,它是这样的

【问题讨论】:

    标签: javascript html angularjs xml


    【解决方案1】:

    简单的正则表达式字符串替换应该处理它:

    var str = 'You shout it loud↵But I can’t hear a word you say↵I’m talking loud, not saying much↵↵I’m criticized but all your bullets ricochet↵You shoot me down, but I get up';
    
    var formatted = str.replace(/↵/ig, "<br/>\n");
    
    console.log(formatted);
    document.write(formatted);

    正则表达式查找与/ 符号之间的字符匹配的所有内容,并将它们替换为标准换行符\n 和HTML 断线标记&lt;br/&gt;

    ig 标志分别表示 Case InsensitiveSearch Global

    Case Insensitive 捕获字符,即使它们的大小写不同。 Search Global 表示如果你输入一个多行字符串,那么它将替换所有行,而不仅仅是第一行。

    【讨论】:

    • 谢谢,你的方法是正确的,应该可以工作,但我不知道为什么在我的 html 中它不显示新行,即使在我的控制台日志中格式正确并且它显示在新行中,我怀疑也许在 angularjs 中情况有所不同,我用歌词填充模型并像 {{lyric}} 一样显示它,但它没有格式化并且根本不显示新行
    • 我刚刚更新了我的问题并从我的控制台添加了一张照片,你知道吗?
    • 似乎没有添加&lt;br/&gt; 标签。你能展示你用来修改字符串的代码吗?
    • $scope.myLyric=vm.lyric.response.replace(/↵/ig, "
      \n");
    • vm.lyric.response 包含歌词文本
    【解决方案2】:

    我只是想通了,如果其他人遇到同样的问题,我会告诉你它是如何工作的:

    当我像这样显示歌词时:

    <p>{{lyric}}</p>
    

    它忽略了我的新行。但是当我使用这个时:

    <pre>{{lyrics}}</pre>
    

    有效!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-28
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2012-11-27
      • 1970-01-01
      • 2016-03-04
      相关资源
      最近更新 更多