【发布时间】:2013-09-03 11:16:44
【问题描述】:
例如,我的 contenteditable div 中有这样的文本:
<div id = "board">
<div>#include<iostream.h></div>
<div></div>
<div>int main(){</div>
<div>
clrscr
<span id="openParen">(</span>
<span id="closeParen">)</span>
;
</div>
<div>return 0;</div>
<div>}</div>
</div>
如果我看到一些关键字,它会包含在span 中。
<div id = "board">
<div><span class="fragment">#include<iostream.h></span></div>
<div></div>
<div>int <span class="fragment">main</span>(){</div>
<div>
<span class="fragment">
clrscr
<span id="openParen">(</span>
<span id="closeParen">)</span>
;
</span>
</div>
<div>return 0;</div>
<div>}</div>
</div>
我已经完成了 #include 和 main 等关键字的包装,但我无法使用此代码(来自 https://stackoverflow.com/users/2684660/funkwurm)包装 clrscr():
$('#board').children().each(function(index, child) {
var text = $(child).html();
text = text.replace(/(#include(\s*<.*>)?)/g, '<span class="frag">$1</span>');
text = text.replace(/(main)/g, '<span class="frag">$1</span>');
text = text.replace(/(clrscr)/gi, '<span class="frag">$1</span>');
$(child).html(text);
});
【问题讨论】:
-
不太清楚你在问什么。您是否需要帮助匹配关键字或帮助将其中一些关键字包装在跨度中?
-
1.匹配它们 2. 然后包装它们
-
那么您首先需要弄清楚您实际上要匹配哪些关键字。正则表达式替换可能是一种选择,但这实际上取决于您要匹配的内容。
-
#include 和 main 一会儿
-
@fireflieslive 但你也想要
<iostream.h>和#include在这种情况下你要么有#include<iostream.h>要么#include <iostream.h>作为你的关键词!
标签: javascript jquery regex dom