【问题标题】:Reconstructing Position in the Original Array from the Position in a Stripped Down Array从剥离数组中的位置重建原始数组中的位置
【发布时间】:2010-03-22 05:50:57
【问题描述】:

我有一个包含以下内容的文本文件:

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

我有一个非常简单的正则表达式,可以将它们剥离成一个常量块,所以它只是:

<Quote>
<Quote>
<Quote>

我想做的是将引号作为一个块呈现给用户,并让他们选择它(使用 jQuery.fieldSelection),然后使用选择的内容返回到原始数组,这样我就可以得到时间和 ID。

因为这必须输出到 HTML,并且用户必须能够选择屏幕上的文本,所以我不能做任何事情,比如隐藏 div 或隐藏输入字段。我将拥有的唯一数据是屏幕上选择的字符范围。

具体来说是这样的:

1
0:00 --> 0:05
He was bored. So bored. His great intellect, seemingly inexhaustible, 
was hungry for new challenges but he was the last of the great innovators

2
0:05 --> 0:10
- society's problems had all been solved.

3
0:11 --> 0:20
All seemingly unconnected disciplines had long since been found to be related in
horrifically elusive and contrived ways and he had mastered them all.

这就是我想呈现给用户以供选择的内容:

他很无聊。很无聊。他的伟大 智慧,看似取之不尽, 渴望新的挑战,但他 是最后一位伟大的创新者—— 社会的问题都已经 解决了。一切看似无关 学科早已被发现 以难以捉摸的方式联系起来 和人为的方法,他已经掌握了 他们都。

以前有没有人遇到过这样的事情?任何想法如何获取所选文本或选择位置,并返回到原始元数据?

【问题讨论】:

    标签: jquery html regex text


    【解决方案1】:

    这在一般情况下是不可能的,因为无法保证列表中的元素(甚至是短于总结果一半长度的一系列元素)是唯一的。如果我们设置任何文本片段只会出现一次的约束,我们可以简单地在原始列表中搜索文本并查看它出现的位置(尽管这将是低效的)。一般来说,最好的解决方案是将原始片段的引用附加到精简版本。如果您使用 Javascript 进行转换,这非常简单——只需让转换函数将每个结果语句包装在一个 span 中并设置 thisSpan.original = 3 或其他任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2013-07-18
      相关资源
      最近更新 更多