使用<span>元素着色纯文本字符串

时间:2015-12-22 10:29:26

标签: javascript html

好吧,所以我做了这个功能:

String.prototype.colorize = function() {
    return this.replace(/&([0-9]{1,3})/gi, function($0, $1, offset) {
        return (offset > 0 ? "</span>" : "") + '<span style="color: hsl(' + $1 + ', 100%, 50%)">';
    });
};

它基本上将纯文本字符串转换为带有颜色的html跨度,以便例如&amp; 240Hello变为蓝色,使用HSL色标。

现在的问题是,我需要在字符串的最后添加</span>,只要它找到任何匹配项以便它自己关闭。我可以将它存储在str中,然后执行if (str.indexOf("span") > -1) str += "</span>"。但我觉得这看起来很丑陋,无论如何都要在替换器功能中立即修复它?

我注意到这并不重要,因为如果你使用innerHTML附加它,它会自动生成</span>标记,为了清楚起见,我该怎么做?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

所以我找到了解决方案,它比问题的代码更清晰:

Package.onUse(function(api) {
    api.versionsFrom('1.2.1');
    api.use('angular');
    api.use('twbs:bootstrap', 'web.browser');

    //.... some lines skipped

    api.addFiles([
        'styles/variables.less',
        'styles/forms.less'
    ], 'client', {isImport: true});
});