迭代正则表达式的结果并单独替换它

时间:2013-02-11 14:36:55

标签: javascript

简短:我正在寻找类似jQuery的.each()函数和regex。

我有一个长文本,其中包含一些<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;");
        }

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

任何想法,如何解决?

1 个答案:

答案 0 :(得分: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);
}