JavaScript用函数结果替换文本中的每个匹配
JavaScript replacing text with function result for each match in text
我试图将textarea元素中的所有链接替换为该文本的函数结果。
的例子:<>之前Url =/(^|<|'s)(www'..+?'..+?)('s|>|$)/g;Text = "含有链接的文本www.stackoverflow.com";文本。替换(url,转换(结果));document . write(文本);函数转换(链接){返回"XX" +链接+ "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"
String#replace
不会修改接收方,因为JavaScript中的字符串是不可变的。你想要这样:
url = /(^|<|'s)(www'..+?'..+?)('s|>|$)/g;
text = "Text with link inside www.stackoverflow.com";
text = text.replace(url, convert(RESULT));
document.write(text);
function convert(link){
return " XX " + link + "XX";
}
还有,你提到了Text
而不是text
,我已经纠正了。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何将具有文本类型值的var放入jQuery函数中
- 文本编辑后,append函数不适用于文本区域
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- Javascript-onblur函数无法更改文本框的值
- JavaScript:在调用函数的文本输入上按enter键
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- HTML如何根据javascript函数的返回值限制文本输入
- JavaScript-onClick将按钮ID或单击按钮的文本传递给函数
- 设置javascript函数中文本框的值
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- 当运行JS函数时,如何在c#中的Edgejs中获取错误文本
- 它在另一个函数中嵌套后不会输出文本
- j查询限制文本函数
- JS中的文本函数第一个参数(_)
- 合并 2 个 javascript/jquery 随机横幅图像/文本函数彼此对应
- Get-day文本函数返回了未定义的值
- br 标签在使用 JQUERY 文本函数将内容从文本区域替换到 DIV 时不起作用
- 如何将验证文本函数与其他函数同时使用