Javascript 用链接替换字符?
如果在div中有一块文本,如:Javascript 用链接替换字符?,javascript,jquery,Javascript,Jquery,如果在div中有一块文本,如: <div id='t1'> This is a great testing string. Tomorrow grass is green. </div> 这是一个伟大的测试字符串。明天草是绿色的。 我想把字母“g”的所有实例替换为指向google的链接,比如 <a href='www.google.com'>g</a> 仅使用Javascript/jquery就可以做到这一点吗?不需要jquery v
<div id='t1'>
This is a great testing string. Tomorrow grass is green.
</div>
这是一个伟大的测试字符串。明天草是绿色的。
我想把字母“g”的所有实例替换为指向google的链接,比如
<a href='www.google.com'>g</a>
仅使用Javascript/jquery就可以做到这一点吗?不需要jquery
var t1 = document.getElementById('t1')
t1.innerHTML = t1.innerHTML.replace(/g/g, '<a href="http://www.google.com/">g</a>')
var t1=document.getElementById('t1'))
t1.innerHTML=t1.innerHTML.replace(/g/g,“”)
在
/g/g
中,第一个g
就是您要搜索的内容。第二个g
表示全局(也称为全部替换)如果要执行简单的字符串替换,请执行以下操作:
var div = document.getElementById("t1");
div.innerHTML = div.innerHTML.replace(/g/g, "<a href='http://www.google.com'>g</a>");
var div=document.getElementById(“t1”);
div.innerHTML=div.innerHTML.replace(/g/g,“”);
如果需要更多动态,例如,根据值使用链接替换单词,请使用:
示例:用不同的URL替换g或g:
var div = document.getElementById("t1");
var mapper = {
g: "http://www.google.com",
G: "http://stackoverflow.com"
};
div.innerHTML = div.innerHTML.replace(/[Gg]/g, function(fullmatch){
return "<a href='" + mapper[fullmatch] + "'>" + fullmatch + "</a>";
});
var div=document.getElementById(“t1”);
变量映射器={
g:“http://www.google.com",
G:“http://stackoverflow.com"
};
div.innerHTML=div.innerHTML.replace(/[Gg]/g,函数(fullmatch){
返回“”;
});
$('#t1').html($('#t1').text().replace(/g/g,”));
如果我想替换句点的所有实例,那么我会使用“//g”?您应该使用\.
,因为
匹配所有非换行字符(点在正则表达式中有特殊含义)。/word/g
是匹配“word
”的正则表达式/g
告诉replace
函数继续匹配,直到找不到匹配为止(默认行为是在第一次匹配时停止)。@RobW哦,对了!在那之前我对/g
的想法是错误的!非常感谢。请注意使用了text
而不是另一个html
单词。优点是
不会因更换而损坏。相反,它将被视为
,最终仍然有效。我和Rob的解决方案中缺少一些东西。可能的危险缺点是,span onmouseover=“…”
有可能引入错误,因为生成的文本将被重新呈现为HTML
。因此,只有在已知原始输入是安全的情况下,才应使用此代码。
$('#t1').html( $('#t1').text().replace(/g/g,"<a href='www.google.com'>g</a>") );