如何识别HTML中的新行字符(\ n)

时间:2017-03-02 05:59:19

标签: html html5

我有一个应用程序,我从REST Api收到一个注释字符串,如此

"comments":"This is a comment\nAnother comment\nOne more\nLast

我正在使用p标签显示它,但它没有识别换行符(\ n)。如何换行?

4 个答案:

答案 0 :(得分:2)

有两种方式:

  1. 如果您有权访问REST API。在返回评论之前,使用nl2br函数(php)

  2. 您可以在JavaScript(JS)中使用以下代码:

    var comment = "This is a comment\nAnother comment\nOne more\nLast";
    comment = comment.replace(/\n/g, "<br />");
    alert(comment);
    

答案 1 :(得分:1)

可能是 CSS 的问题,

如果您应用 white-space: pre-wrap,那么它可能有助于确保您的换行符被识别。

有关其他 white-space 选项及其功能,请参阅文档。

https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

const nodes = document.getElementsByTagName('p');

// Replacing the innerHtml because the newline chars aren't acknowledged if I define them in the HTML.
for(let n of nodes) {
  n.innerHTML = 'Here is \nSome example \nText with \nLine breaks.'
}
p.no-breaks {
  white-space: nowrap;
  color: red;
}

p.with-breaks {
  white-space: pre-wrap;
  color: blue;
}
<p class="no-breaks">This text will be replaced.</p>

<p class="with-breaks">This text will be replaced.</p>

答案 2 :(得分:0)

我想这就是你想要的!!

 <select name="order_required_time" id="order_required_time" required="">
 <option value="">Choose time</option>
 <option value="11:30 - 12:00 pm">11:30 - 12:00 pm</option>
 <option value="12:00 - 12:30 pm">12:00 - 12:30 pm</option>
 <option value="12:30 - 01:00 pm">12:30 - 01:00 pm</option>
 <option value="01:00 - 01:30 pm">01:00 - 01:30 pm</option>
 <option value="01:30 - 02:00 pm">01:30 - 02:00 pm</option>
 <option value="02:00 - 02:30 pm">02:00 - 02:30 pm</option>
 <option value="02:30 - 03:00 pm">02:30 - 03:00 pm</option>
 <option value="06:30 - 07:00 pm">06:30 - 07:00 pm</option>
 <option value="07:00 - 07:30 pm">07:00 - 07:30 pm</option>
 <option value="07:30 - 08:00 pm">07:30 - 08:00 pm</option>
 <option value="08:00 - 08:30 pm">08:00 - 08:30 pm</option>
 <option value="08:30 - 09:00 pm">08:30 - 09:00 pm</option>
 <option value="09:00 - 09:30 pm">09:00 - 09:30 pm</option>
 </select>

它对我有用..

答案 3 :(得分:0)

<pre>标记设置为识别换行符。你可以通过CSS让<p>表现得像<pre>,但你会松开<p>中的任何HTML(如果有的话)。

或者,您必须使用HTML换行符<br><br/>

替换它们