如何在有序列表中显示部分字符串

How to show parts of a string in a ordered list

我有一个字符串:

var data = 'Hei, how are u?. I am good. And you?.'

我正在使用 EJS 作为我的视图引擎,我想要这样显示:

  1. 嘿,你好吗?
  2. 我很好
  3. 你呢?

目前我正在使用数组数组:

var data = [
  ['Hei, how are u?'],
  ['I am good.'],
  ['And you?']
]

他们我可以做一个 for 循环并像列表一样显示。

这是我唯一能做的,但我认为我做错了。

有人可以帮我吗?

如何打断字符串并在HTML中显示为列表?

分句器可以使用

https://github.com/parmentf/node-sentence-tokenizer

然后用ejs进行数组解析

谢谢。

假设这是传递给 ejs 模板的数据。

var data = { parts: [ 'Hei, how are u?', 'I am good.', 'And you?' ] };

在 ejs 模板中:

<ol>
<% for(var i = 0; i < parts.length; i++) {%>
    <li><%= parts[i] %></li>
<% } %>
</ol>

注意:使用正则表达式将字符串拆分为匹配“.”、“?”的部分等等

var txt = 'Hei, how are u?. I am good. And you?.';
var parts = txt.match(/[^\.!\?]+[\.!\?]+/g);
var data = { parts: parts };

正则表达式代码参考:Javascript RegExp for splitting text into sentences and keeping the delimiter