如何同时替换JavaScript字符串中的多个单词?
我有一个javascript字符串,其中包含一些代码,如如何同时替换JavaScript字符串中的多个单词?,javascript,jquery,tooltip,Javascript,Jquery,Tooltip,我有一个javascript字符串,其中包含一些代码,如[悬停在我身上](工具提示文本)。我想把这段代码转换成HTML[]包含文本和()包含工具提示文本 这是我想要的 <div class="tooltip">Hover over me <span class="tooltiptext">Tooltip text</span> </div> 悬停在我身上 提示文本 该字符串包含多个工具提示代码,
[悬停在我身上](工具提示文本)
。我想把这段代码转换成HTML<代码>[]包含文本和()
包含工具提示文本
这是我想要的
<div class="tooltip">Hover over me
<span class="tooltiptext">Tooltip text</span>
</div>
悬停在我身上
提示文本
该字符串包含多个工具提示代码,我需要将每个代码转换为此HTML代码
我在尝试什么
<p id="p">blabla [some info](tool) it is text [one](tool) [two] (tool)</p>
var text = document.getElementById('p').innerHTML;
var matches = text.match(/\[(.*?)\]/);
var final = text.match(/\((.*?)\)/);
var res = text.replace(matches[0], "<span>"+matches[1]+"</span>");
var newtext = document.getElementById('p').innerHTML = res;
var ros = newtext.replace(final[0], "<span>"+final[1]+"</span>");
document.getElementById('p').innerHTML = ros;
console.log(ros);
blabla[some info](工具)它是文本[1](工具)[2](工具)
var text=document.getElementById('p').innerHTML;
var matches=text.match(/\[(.*?\]);
var final=text.match(/\(.*?)/);
var res=text.replace(匹配[0],“”+匹配[1]+“”);
var newtext=document.getElementById('p')。innerHTML=res;
var ros=newtext.replace(final[0],“”+final[1]+“”);
document.getElementById('p').innerHTML=ros;
控制台日志(ros);
我知道代码很混乱,但我需要一些帮助。我还尝试了其他代码,但也没有成功,这里是fiddle
var text=document.getElementById('p').innerHTML;
//您可能希望更好地验证此循环。
而(text.indexOf('))>0){
设a=text.slice(text.indexOf('[')+1,text.indexOf(']')),
b=text.slice(text.indexOf('(')+1,text.indexOf('))),
c=`${a}${b}`;
text=text.slice(0,text.indexOf('['))+c+text.slice(text.indexOf('))+1);
}
这可以让你开始
--
RMZ您需要实现它。在while循环之后,使用这个=>document.getElementById('p')。innerHTML=text;我做到了,我得到了结果,非常感谢
var text = document.getElementById('p').innerHTML;
// You may want to validate this loop better.
while( text.indexOf(')') > 0 ) {
let a = text.slice( text.indexOf('[') + 1, text.indexOf(']') ),
b = text.slice( text.indexOf('(') + 1, text.indexOf(')') ),
c = `<div class="tooltip">${ a } <span class="tooltiptext">${ b }</span></div>`;
text = text.slice( 0, text.indexOf('[') ) + c + text.slice( text.indexOf(')') + 1 );
}