javascript - 用匹配项替换回调函数

标签 javascript

需要更换<wiki>this page</wiki><a href='wiki/this_page'>this page</a>
使用回调函数:

text = text.replace(/<wiki>(.+?)<\/wiki>/g, function(match)
    {
        return "<a href='wiki/"+match.replace(/ /g, '_')+"'>"+match+"</a>";
    }
);

结果是标签 <wiki>保留(完全匹配)- <a href='wiki/<wiki>this_page</wiki>'><wiki>this page</wiki></a>

有没有办法像 PHP 的 preg_replace_callback() 那样获取 matches[0]、matches[1] ?

最佳答案

replace function's callback将匹配项作为参数。

例如:

text = text.replace(/<wiki>(.+?)<\/wiki>/g, function(match, contents, offset, input_string)
    {
        return "<a href='wiki/"+contents.replace(/ /g, '_')+"'>"+contents+"</a>";
    }
);

(第二个参数为第一个捕获组)

关于javascript - 用匹配项替换回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395843/

相关文章:

javascript - 在指令中使用 $compile 会触发 AngularJS 无限摘要错误

Javascript - 等待大量异步回调返回?

javascript - 根据时间戳删除数组中的 "like items"对象

c# - "Random-looking"序列发生器

javascript - 缩放和居中不同尺寸的图像,并在 CSS 中使用右对齐文本

javascript - Angular js - 绑定(bind)到函数

javascript - 如何使用 javascript 验证用户输入

javascript - 如何使用 YUI3 检测 HTML 元素的样式变化?

javascript - JS删除最后一次出现的字符后的所有内容

javascript - 在文本中添加指向文本的链接 - React Native