Posted by & filed under 每日一题.

【四脚猫】每日一题(10月24日):如何将内容当中含有xiazhuozhonghao样式名称的span标签,如

1
我<span class="xiazhuozhonghao">们都是中国</span>人

处理成

1
我<span class="xiazhuozhonghao">们</span><span class="xiazhuozhonghao">都</span><span class="xiazhuozhonghao">是</span><span class="xiazhuozhonghao">中</span><span class="xiazhuozhonghao">国</span>人

仅需考虑中文。提示:span标签里面可能包含其他标签。

参考答案:
此题看似简单,但是却隐藏着一些细节问题。如果完全用正则表达式来处理,估计会稍显复杂。这里提供一个浏览器端dom方式的思路:

1
2
3
4
5
6
7
8
9
10
var needles = $('body').find('.emphasis-filled-dot');
needles.each(function(){
    var html = $(this).html().replace(/<[^<>]+>|\w+|./g, function(match) {
        if(match[0] != '<' && match != ' ') {
            return '<span class="emphasis-filled-dot">' + match + '</span>';
        }
        return match;
    });
    $(this).removeClass('emphasis-filled-dot').html(html);
});

欢迎各位攻城狮,各位大牛给每日一题投稿,大家可以把自己碰到的有趣问题,工作中碰到的难题等…发送到 稿件邮箱:2313427189@qq.com