2

简短:我正在寻找类似 jQuery 的.each()正则表达式函数。

我有一个带有一些短字符串的长文本,格式为<abcd1234>. abcd1234应该包含为每个找到的字符串生成的包含<span>文本颜色。我发现这个函数可以这样做:https ://stackoverflow.com/a/3426956/237312

function nickFormat(text) {
            var exp = /\&lt\;(.*)\&gt\;/ig;
            name = exp.exec(text);
            return text.replace(exp, "&lt;<span style='color: #"+intToARGB(hashCode(RegExp.$1)).substr(0, 6)+"'>$1</span>&gt;");
        }

这是我当前替换找到的字符串的代码,这意味着正则表达式正在工作。但并不像最初预期的那样。每个找到的字符串都用相同的颜色着色。

任何想法,如何解决它?

4

1 回答 1

2

感谢 Felix Kling,我能够非常快速地解决问题。谢谢!

function nickFormat(text) {
    var exp = /\&lt\;(.*)\&gt\;/ig;

    function makeItSo(match) {
        return "<span style='color: #"+intToARGB(hashCode(match)).substr(0, 6)+"'>"+match+"</span>";
    }
    return text.replace(exp, makeItSo);
}
于 2013-02-11T15:06:24.217 回答