用<为纯文本字符串着色;span>元素
Colorize plain text string with <span> elements
好吧,所以我做了这个函数:
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跨度,例如&240Hello使用HSL色阶变为蓝色。
现在的问题是,只有当它找到任何匹配项时,我才需要它在字符串的最后添加</span>
,以便关闭它自己。我可以把它存储在str中,然后做if (str.indexOf("span") > -1) str += "</span>"
。但我认为这看起来很难看,有没有办法在replacer函数中立即解决这个问题?
我注意到这其实并不重要,因为如果你使用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");
};
相关文章:
- 使用jquery将单个换行符替换为span元素
- 用于检索span元素内容的JavaScript
- 如何使动态树标题中的span元素可点击
- 如何在使用 fancybox 时从这个 span 元素制作一个 javascript 变量
- Javascript正则表达式:从头到尾将span元素与某个类进行匹配
- 找到最近的span元素并更改CSS类
- 如何为span元素添加/删除类onclick
- 如何使用 JQuery 检索具有特定类的 span 元素中的文本,该元素位于单击的对象内
- 鼠标悬停在一个 span 元素上多次触发
- 在 for 循环内分组并根据样式属性修改 span 元素
- 如何使用jQuery获取后代span元素
- 如何根据用户输入 HTML 更新多个 SPAN 元素
- 如何在单词周围添加 span 元素
- 从上一个 span 元素中获取样式
- 检查 span 元素是否包含“文本”,并且是父元素的最后一个子元素
- 尝试将 span 元素的值输入到数据库中
- 如何使用 jQuery 设置 span 元素的内部 HTML
- Span元素不从jQuery运行动画
- Javascript更改所有span元素的innerHTML
- 纯Javascript可以获取所有span元素,但可以通过定义的类进行特定的编辑