Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用链接替换字符?_Javascript_Jquery - Fatal编程技术网

Javascript 用链接替换字符?

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中有一块文本,如:

<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>") );