使用<span>元素着色纯文本字符串
好吧,所以我做了这个功能:
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跨度,以便例如使用HSL颜色比例使&240Hello变为蓝色。
现在的问题是,我需要它在字符串的最后添加</span>
,只要它找到了任何匹配,以便它自己关闭。 我可以将它存储在str中,然后执行if (str.indexOf("span") > -1) str += "</span>"
。 但是我认为这看起来很丑陋,有没有办法在替换函数中修复这个问题?
我注意到这并不重要,因为如果你使用innerHTML附加它,它会自动生成一个</span>
标签,只是为了清楚起见,我该怎么做?
先谢谢你。
所以我找到了解决方案,它比问题的代码更清晰:
String.prototype.colorize = function() {
return this
.replace(/&([0-9]{1,3})/g, '</span><span style="color: hsl($1, 100%, 50%)">')
.replace(/(</span>)(.*)/g, "$2$1");
};
链接地址: http://www.djcxy.com/p/15359.html