JavaScript 将文本替换为文本中每个匹配项的函数结果

标签 javascript replace

我正在尝试用该文本片段的函数结果替换 textarea 元素中的所有链接。

例子:


url = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g;
Text = "Text with link inside www.stackoverflow.com";
text.replace(url, convert(RESULT));
document.write(text);

function convert(link){
  return " XX " + link + "XX";
}

我需要的是在该字符串中找到的每个链接都被转换为被 XX 或任何其他字符串包围。 事实上,我需要将文本中的每个链接发送到该函数,以便我可以替换它们中的每一个。

我已经在网上搜索了几个小时。尝试了很多东西。什么都没用。

关于如何做到这一点有什么想法吗?

提前致谢!

最佳答案

有几个问题。

  1. replace 函数允许引用一个函数作为它的第二个参数。您正在调用 convert 函数,而不是传递引用。
  2. replace 函数不会修改原始字符串。您需要保存其结果。
  3. 您正试图在 convert 定义之前使用它。

综合起来:

function convert(link) {
    return " XX " + link + "XX";
}
var url = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g;
var text = "Text with link inside www.stackoverflow.com";
text = text.replace(url, convert);

输出:

"Text with link inside XX www.stackoverflow.comXX"

关于JavaScript 将文本替换为文本中每个匹配项的函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708932/

相关文章:

javascript - Express body-parser req.body with formdata 是空对象

javascript - 识别纯文本句子中的推特句柄

Java 在 X 时间过去后替换图标图像

javascript - 从 JavaScript 中的字符串中删除 ASCII « OR »

JavaScript - 更有效地检查对象 - if...else 或 try...catch

javascript - 内联html中的module.export

javascript - 谷歌地图方向点

javascript - 如何使用 html 或 xhtml 中的图像标签读取和更改 svg 文件内的元素?

regex - 如何使用正则表达式删除具有特定变量的特定行

mysql - 如何通过正则表达式语法删除包含随机字符的字符串