当前位置: 首页 > 知识库问答 >
问题:

为什么要将此p标记添加为新行?

琴俊人
2023-03-14

下面的代码拆分数据,应用正则表达式,然后再次连接字符串(有一部分删除了单词之间的新行,因为我希望在单个块/行中输出段落):

输入:

Lorem ipsum dolor坐在一起

Ipsum dolor sit amet,consetetur eirmod tempor invidunt ut laboure

代码:

data = data.split('\n\n')
for (var i = 0; i < data.length; ++i) {
  data[i] = '<p>' + data[i].replace(/\n(?=\w+)/g, ' ') + '</p>'
}
data = data.join('\n\n')

我认为输入将是:

<p>Lorem ipsum dolor sit amet</p>

<p>Ipsum dolor sit amet, consetetur eirmod tempor invidunt ut labore</p>

但不是,而是:

<p>Lorem ipsum dolor sit amet</p>

<p>Ipsum dolor sit amet, consetetur eirmod tempor invidunt ut labore
</p>

原因可能是什么?

共有2个答案

米俊晤
2023-03-14

如果您的输出在结束之前显示换行符

/* note that you cannot declare a multiline string in javascript
   like you did. I'm using `Array.join()` to create the example data */
data = [
  "Lorem ipsum dolor sit amet",
  "",
  "Ipsum dolor sit amet, consetetur",
  "eirmod tempor invidunt ut labore"
].join("\n");

data = data.split('\n\n')
for (var i = 0; i < data.length; ++i) {
  data[i] = '<p>' + data[i].replace(/\n(?=\w+)/g, ' ') + '</p>'
}
data = data.join('\n\n')

於德馨
2023-03-14

我认为您的原始字符串中有一个尾随换行符,但您可以通过稍微更改来解决问题。不要检查换行符后面是否有单词字符,而是检查后面是否没有空格字符:

var data = "Lorem ipsum dolor sit amet\n"
         + "\n"
         + "Ipsum dolor sit amet, consetetur\n"
         + "eirmod tempor invidunt ut labore\n";

var data = data.split('\n\n');
for (var i = 0; i < data.length; ++i) {
  data[i] = '<p>' + data[i].replace(/\n(?!\s)/g, '') + '</p>'
}
data = data.join('\n\n');

console.log(data);
 类似资料:
  • 问题内容: 我有一个问题,为什么将main方法标记为 public ? 根据关于stackoverflow的回答,它声明为 静态 “该方法是静态的,因为否则会产生歧义:应调用哪个构造函数?” 但是,任何人都可以解释为什么总是将其宣布为 公开 吗? 问题答案: 启动程序的初始化软件必须能够看到以便可以调用它。

  • 本文向大家介绍为什么eval要添加括号呢?相关面试题,主要包含被问及为什么eval要添加括号呢?时的应答技巧和注意事项,需要的朋友参考一下 没太理解题意,方法的调用是要加括号的啊…… 如果题目问的是为什么会有 这种调用形式的话,那是因为js规定在间接调用(无调用者上下文)时,其编译的代码会默认执行在顶层作用域。 例: 所以永远只会返回全局对象(该表达式可以作为的polyfill,并且无法被污染)

  • null 现在我是否感到困惑:如果我想访问中的第一个字符并将其存储在eax寄存器中,我希望汇编程序执行如下操作: 如果我需要访问存储在ARGV[1]中的第二个字符并将其存储在eax寄存器中,我希望汇编程序执行如下操作: 但相反,我看到编译器执行以下操作: null

  • 本文向大家介绍html的img标签为什么要添加alt属性呢?相关面试题,主要包含被问及html的img标签为什么要添加alt属性呢?时的应答技巧和注意事项,需要的朋友参考一下 alt 属性是一个必需的属性,它规定在图像无法显示时的替代文本。 假设由于一些原因,用户无法查看图像,alt属性可以为图像提供替代的信息。比如: 网速太慢 src 属性中的错误 浏览器禁用图像 用户使用的是屏幕阅读器等 添加

  • 问题内容: 当我加载该模块时: (来自http://www.freesoftwaremagazine.com/articles/drivers_linux?page=0,2) 该模块在2.6.39-02063904-generic(来自Ubuntu PPA)上被标记为in 且无法卸载。但是它在默认的2.6.38内核上可以正常工作。(均在Ubuntu 11.04 x86上)。 2.6.39中发生了什

  • 我刚刚升级到spring-boot 2.1.3.release,由于这个新的类/方法,我不能拥有多个StreamsBuilderFactoryBean(只需要一个): 我得到这个错误: 我在想,也许使构造的bean成为一个主要的bean。任何帮助都超过感激! 编辑:我通过删除和来规避这个问题。因此,不起作用。