【问题标题】:How to show parts of a string in a ordered list如何在有序列表中显示部分字符串
【发布时间】:2015-04-21 14:48:49
【问题描述】:

我有一个字符串:

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 中打破字符串并像列表一样显示?

【问题讨论】:

  • 字符串数组不会代替数组数组吗? var data = [ 'Hei, how are u?', 'I am good.', 'And you?' ]
  • 但是如何使用字符串数组在 html 中显示一个列表?
  • 您应该使用split 函数来分隔原始字符串。一个可能的分隔符可能是"."

标签: javascript node.js ejs


【解决方案1】:

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

【讨论】:

  • 如果我可以不用模块做我想做的事,我宁愿不使用模块,因此我会接受你的回答。
【解决方案2】:

可以使用分句器

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

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

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2012-10-02
    相关资源
    最近更新 更多