Javascript 在字符串中包装嵌套范围

Javascript 在字符串中包装嵌套范围,javascript,jquery,Javascript,Jquery,因此,我试图用JavaScript可视化一些源代码数据: 输入示例: public String newVar = "so new"; 然后,该输入将被匹配,输出将是所有匹配的起始位置和长度,以及一些其他数据 例如,它将匹配上面示例输入代码中的“public”: type: "INSERT" dstLength: 6 dstPos: 0 ... 我想将所有匹配项包装在一个span标记中。这对于单个匹配很容易,只需在字符串的索引0和6处添加一个开始和结束标记 <span class="i

因此,我试图用JavaScript可视化一些源代码数据:

输入示例:

public String newVar = "so new";
然后,该输入将被匹配,输出将是所有匹配的起始位置和长度,以及一些其他数据

例如,它将匹配上面示例输入代码中的“public”:

type: "INSERT"
dstLength: 6
dstPos: 0
...
我想将所有匹配项包装在一个span标记中。这对于单个匹配很容易,只需在字符串的索引0和6处添加一个开始和结束标记

<span class="ins">public</span> String newVar = "so new";
使用相同的方法,我们将只使用span标记包装
lass=“
,这不是我想要的

有没有什么好方法可以在一个步骤中将所有这些项目一起替换,而无需重新计算任何内容?
匹配项不以任何方式按出现次数排序,可以嵌套,因此对于输入示例,这意味着整行可能存在匹配项
public String newVar=“so new”

您遇到了双重编码问题-即您开始“编码”然后查看编码字符串而不是原始字符串。我建议重新考虑,将源字符串解析为新字符串,而不是迭代更新同一字符串(即不要每次都用new替换源)。我仍然不理解您的问题:(我明白你所说的,这将解决突出显示源代码错误部分的问题,但我最终创建了大量字符串,却不知道如何将它们重新组合在一起以形成最终突出显示的字符串。我的错-你已经在先运行匹配(不清楚)-因此,您有许多对象,而不是应用一个对象然后再重新分类。我将很快删除我的注释。如果您可以删除这些对象可以嵌套的要求,则只需按DSTPO排序并按相反顺序运行即可。
type: "INSERT"
dstLength: 6
dstPos: 7
...