javascript - 用javascript中的递增数字替换HTML文本

标签 javascript replace

我有一堆没有 HTML 的文本,我试图找到所有替换 String 的所有实例与 <span id="x">String</span>
问题是我每次都尝试增加 x 以获得一堆唯一可识别的跨度,而不是相同的跨度。
我可以毫无问题地获取 String 的所有实例,但是对于我来说,我无法让增量工作。我能找到的所有帮助似乎都与此相反。
有什么想法我可以做什么或从其他地方寻求帮助吗?

编辑:
这是针对 ID 为“result”且仅包含文本的 div。

    var target = "String";
    var X = //the number I was trying to increment
    var re = new RegExp(" " + target + " ","g");
    document.getElementById('result').innerHTML = document.getElementById('result').innerHTML.replace(re, '<span id="' + X + '">' + target + '</span>');

最佳答案

我猜您使用的是正则表达式,这很好,但您可以指定一个函数作为 replace 的第二个参数,并在那里执行您的逻辑。

执行此操作的 MDN 文档在此处 - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter

你可以使用这样的东西:

http://jsfiddle.net/gjrCN/2/

function replacer(orig, target) {
    var x = 0;
    var re = new RegExp(target, "g");
    var ret = orig.replace(re, function (match) {
        return "<span id='" + (++x) + "'>" + match + "</span>";
    });
    return ret;
}

var example = "String Stringasdf String2344 String";
var replaced = replacer(example, "String");
console.log(replaced);

如果您希望计数从 0 而不是 1 开始,您可以将 ++x 更改为 x++ >.

关于javascript - 用javascript中的递增数字替换HTML文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617157/

相关文章:

javascript - 使用 React Router 重新加载页面时出现 404 错误

javascript - 这实际上是在改变状态吗?

javascript - 用破折号替换空格并使所有字母小写

keyup 上的 javascript 正则表达式

python - 如何用新标签替换 tkinter 标签?

javascript - 为什么我的javascript代码不能继承Animal类的原型(prototype)?

javascript - Rails 4.1 中将 bug Coffeescript 渲染为 js?

javascript - 美国邮政编码验证

python - 替换字符串中的子字符串

Java,无限循环的替代品?