我正在尝试用该文本片段的函数结果替换 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 或任何其他字符串包围。 事实上,我需要将文本中的每个链接发送到该函数,以便我可以替换它们中的每一个。
我已经在网上搜索了几个小时。尝试了很多东西。什么都没用。
关于如何做到这一点有什么想法吗?
提前致谢!
最佳答案
有几个问题。
replace
函数允许引用一个函数作为它的第二个参数。您正在调用convert
函数,而不是传递引用。replace
函数不会修改原始字符串。您需要保存其结果。- 您正试图在
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/