Javascript jquery突出显示文本的某些部分

Javascript jquery突出显示文本的某些部分,javascript,jquery,Javascript,Jquery,我的团队得出结论,为了突出某些文本,我们将使用!!!作为特殊的象征。说来话长 I love !!!JavaScript and jQuery!!!. 应该变成 I love <span class='hl'>JavaScript and jQuery</span>. 我喜欢JavaScript和jQuery。 不要担心边缘情况。我们正在为学龄儿童开发一个系统,他们没有带很多刘海的复杂文本 我该怎么做 附加问题:在应用span之后,我打算使用jQuery higlig

我的团队得出结论,为了突出某些文本,我们将使用!!!作为特殊的象征。说来话长

I love !!!JavaScript and jQuery!!!.
应该变成

I love <span class='hl'>JavaScript and jQuery</span>.
我喜欢JavaScript和jQuery。
不要担心边缘情况。我们正在为学龄儿童开发一个系统,他们没有带很多刘海的复杂文本

我该怎么做


附加问题:在应用span之后,我打算使用jQuery higlighter插件突出显示该代码。这方面的任何建议。

我认为对于这个问题,您需要jQuery中的函数,它将选择选择器的所有子项,包括文本。您可以在此处阅读某人如何使用它的示例:


你将遇到的困难是你需要奇数!!!'s将被替换为和,甚至!!!'s将被替换为。幸运的是,jQuery有选择器,也应该允许您这样做。

您甚至不需要jQuery来实现这一点——您可以使用javascript的内置字符串
replace
函数:

var s = 'I love !!!JavaScript and jQuery!!!. Even with multiple !!!occurrences!!!.';
var replaced = s.replace(/!!!(.+?)!!!/g, function(match, text)
    {
        return '<span class="hl">' + text + '</span>'; 
    }
);
与此相反:

I love <span class="highlight">JavaScript and jQuery!!!. Even with multiple !!!occurrences</span>.
我喜欢JavaScript和jQuery!!!。即使有多个!!!事件。

Javascript中的
替换
仅替换字符串的第一次出现,因此您可以充分利用此功能并执行以下操作:

var mytext = "I love !!!Javascript and jQuery!!!. Ya, !!!jQuery!!! rocks!";

while(true) {
    if (mytext.indexOf('!!!') == -1) break;
    mytext = mytext.replace('!!!', '<span class="hl">');
    mytext = mytext.replace('!!!', '</span>');
}
alert(mytext);
var mytext=“我爱!!!Javascript和jQuery!!!.Ya!!!!!jQuery!!!岩石!”;
while(true){
if(mytext.indexOf('!!!')==-1)中断;
mytext=mytext.replace(“!!!”,”;
mytext=mytext.replace(“!!!”,”;
}
警报(mytext);
输出:

我喜欢Javascript和jQuery。是啊,jQuery岩石 

对于jQuery文本突出显示插件,您可能想考虑

为什么在jQuery中尝试更改这个值?这似乎是服务器端可以处理的事情。你是对的。但是,由于某些限制,如果我们能够在客户端完成,那么这将节省我们很多时间。请提供更多的上下文。这是网络表单吗?您可能希望使用正则表达式来定位并替换括号内的短语。此外,与其将css类命名为h1,不如将其称为“hilite”,这样您就可以将任何css规则与之关联。
var mytext = "I love !!!Javascript and jQuery!!!. Ya, !!!jQuery!!! rocks!";

while(true) {
    if (mytext.indexOf('!!!') == -1) break;
    mytext = mytext.replace('!!!', '<span class="hl">');
    mytext = mytext.replace('!!!', '</span>');
}
alert(mytext);