Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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_Tooltip - Fatal编程技术网

如何同时替换JavaScript字符串中的多个单词?

如何同时替换JavaScript字符串中的多个单词?,javascript,jquery,tooltip,Javascript,Jquery,Tooltip,我有一个javascript字符串,其中包含一些代码,如[悬停在我身上](工具提示文本)。我想把这段代码转换成HTML[]包含文本和()包含工具提示文本 这是我想要的 <div class="tooltip">Hover over me <span class="tooltiptext">Tooltip text</span> </div> 悬停在我身上 提示文本 该字符串包含多个工具提示代码,

我有一个javascript字符串,其中包含一些代码,如
[悬停在我身上](工具提示文本)
。我想把这段代码转换成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 );
}