我的字符串:"<p>Stacked"
我想将其替换为&#34;&lt; font color =&#39;蓝色&#39;&gt;&lt;&lt; / font&gt; p&lt; font color =&#39; blue&#39;&gt;&gt;&lt; / font&gt;堆叠
所以我用过这个:⬇
var rox = /([<])([a-z1-9]+)([>])/;
function testInfo(phoneInput){
var startTag = "<font color='blue'>";
var endTag = "</font>";
var OK = phoneInput.value.replace(rox, function(x){
var lt = x.replace(/([<])/, startTag+'<'+endTag);
var gt = lt.replace(/([>])/ , startTag+'>'+endTag);
return gt;
});
它会像这样返回
<font color='blue'<font color='blue'>p<font color='blue'>></font>
这意味着当我更换
堆栈第一次更换
**<font color='blue'><</font>p<font color='blue'>></font>** But next time it is replacing the **">"** of the *font tag*. Lot *">"* of **p tag**.
问题
<小时/>
我该如何解决?我正在尝试着色/突出显示代码。
答案 0 :(得分:1)
你可以试试这个:
str = `<p>Stacked`;
const subst1 = `LT_LTfont color=' blue'GT_GT<`;
const subst2 = `LT_LTfont color=' blue'GT_GT>`;
str = str.replace(/</g, subst1);
str = str.replace(/>/g, subst2);
str = str.replace(/GT_GT/g,`>`);
str = str.replace(/LT_LT/g,`<`);
$("#kk").html(str);
console.log(str);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="kk">
</div>
&#13;