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

时间:2015-02-20 01:33:33

标签: javascript node.js ejs

我有一个字符串:

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

我使用EJS作为我的视图引擎,我希望这样显示:

  1. 嘿,你好吗?
  2. 我很好。
  3. 你呢?。
  4. 目前我使用的是数组数组:

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

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

    这是我能做的唯一方法,但我相信我做错了。

    有人可以帮我一把吗?

    如何打破字符串并像HTML中的列表一样显示?

2 个答案:

答案 0 :(得分:3)

句子分割器可以使用

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

然后使用ejs进行数组解析。

感谢。

答案 1 :(得分:0)

说这是传递给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