如何解决如何同时替换 JavaScript 字符串中的多个单词?
我有一个 javascript 字符串,其中包含一些类似 [Hover on me](Tooltip text)
的代码。我想将此代码转换为 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);
我知道代码很乱,但我需要一些帮助。我也在尝试其他代码,但这也不起作用,这里是小提琴 https://jsfiddle.net/mohitchandel/aszv8w93/10/
解决方法
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 );
}
这可以帮助您入门。
-- RMZ
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。