Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
453 views
in Technique[技术] by (71.8m points)

regex - JavaScript Text Color Change To Each Word In Array

I have this JavaScript Code:

            $(function() {
            var text = $(this).find("#text").html();

            var key_words = ['university', 'students', 'institutions', 'education'];

            function colorText(text, keywords) {
                var rd;
                $.each(keywords, function(index, item) {
                    var r = new RegExp(item, "gi")
                    rd = text.replace(r, '<span style="background: yellow">' + item + '</span>');
                });
                return rd;
            }


           var colorWords = colorText(text, key_words);

           $(this).find("#text").html(colorWords);

        });

I want to replace all key_words array with colors simple and easy. But always colored only students in whole text and thats all.

What i'm i doing wrong. Thanks in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Another way of doing it without a loop, would be:

 function colorText(text, keywords) {
     var regex = new RegExp(keywords.join('|'), 'gi');
     return text.replace(regex, '<span style="background: yellow">$&</span>');
 }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...