如何在javascript中根据特定条件替换字符?
我有一个这样的信息如何在javascript中根据特定条件替换字符?,javascript,html,regex,Javascript,Html,Regex,我有一个这样的信息 var str=“我的名字是阿米特。这是一个无效标签” 在浏览器中显示此消息时,我希望标记应显示换行符,但应转义所有其他标记,我希望 表示其他标记,如,应按原样显示。所以我希望最终的输出是 `My name is Amit. This <i>is</i> a invalide tag<test>` `我的名字叫阿米特。 这是伤残者标签` 所以我试着用这个逻辑 var str = "My name is Amit.<br>Th
var str=“我的名字是阿米特。
这是一个无效标签”代码>
在浏览器中显示此消息时,我希望
标记应显示换行符,但应转义所有其他标记,我希望
表示其他标记,如,
应按原样显示。所以我希望最终的输出是
`My name is Amit.
This <i>is</i> a invalide tag<test>`
`我的名字叫阿米特。
这是伤残者标签`
所以我试着用这个逻辑
var str = "My name is Amit.<br>This is a invalide tag<test>";
var htmlEncodedNote = str.replace(/</g,"<");
htmlEncodedNote = htmlEncodedNote.replace(/>/g,">");
htmlEncodedNote = htmlEncodedNote.replace(/&/g,"&");
var str=“我的名字是阿米特。
这是一个无效标签”;
var htmlEncodedNote=str.replace(//g,“”);
htmlEncodedNote=htmlEncodedNote。替换(/&/g,“&;”;
但它也会在浏览器中显示
标记。谁能帮我创建一个正则表达式来替换除
下面是示例代码
var container=document.getElementById(“tt”);
var str=“我的名字是阿米特。
这是一个无效标签”;
var htmlEncodedNote=str.replace(//g,“”);
htmlEncodedNote=htmlEncodedNote。替换(/&/g,“&;”;
container.innerHTML=htmlEncodedNote代码>
我对你想做什么感到非常困惑,但以下是我认为你想要的:
JavaScript不是HTML。您不需要转义文本,请使用:
var str = "My name is Amit.<br>This <i>is</i> a invalide tag<test>";
var replacedNode = str.replace(/<br\s*\/?>/g, '\n');
var str=“我的名字是阿米特。
这是一个无效的标记”;
var htmlEscapedString=document.createTextNode(str),
elem=document.getElementById(“tt”),
temp=document.createElement('div');临时追加子项(htmlEscapedString);
而(elem.firstChild)elem.removeChild(elem.firstChild);
htmlEscapedString=temp.innerHTML.replace(/br\s*\/?\s*/g,
);
elem.innerHTML=htmlEscapedString代码>
尝试以下操作:
var str = "My name is Amit.<br>This is a invalide tag<test>";
one = str.split("<br>");
var htmlEncodedNote = one[1].replace(/</g,"<");
htmlEncodedNote = htmlEncodedNote.replace(/>/g,">");
htmlEncodedNote = htmlEncodedNote.replace(/&/g,"&");
container.innerHTML = one[0]+"<br>"+htmlEncodedNote;
var str=“我的名字是阿米特。
这是一个无效标签”;
一个=str.split(“
”);
var htmlEncodedNote=one[1]。替换(//g,”);
htmlEncodedNote=htmlEncodedNote。替换(/&/g,“&;”;
container.innerHTML=一个[0]+“
”+htmlEncodedNote;
结帐
对于多个
检查此项并检查以下代码:
var container = document.getElementById("tt");
var str = "My name is Amit.<br>This is a invalide tag<test><br>Another Line<br>Third Line<Fox>";
htmlEncodedNote = [];
out = "";
one = str.split("<br>");
alert(one.length)
for (i = 1; i < one.length; i++)
{
htmlEncodedNote[i] = one[i].replace(/</g,"<");
htmlEncodedNote[i] = htmlEncodedNote[i].replace(/>/g,">");
htmlEncodedNote[i] = htmlEncodedNote[i].replace(/&/g,"&");
out += htmlEncodedNote[i]+"<br>";
}
container.innerHTML = one[0]+"<br>"+out;
var container=document.getElementById(“tt”);
var str=“我的名字是阿米特。
这是一个无效标签
另一行
第三行”;
htmlEncodedNote=[];
out=“”;
一个=str.split(“
”);
警报(一个长度)
对于(i=1;i<1.length;i++)
{
htmlEncodedNote[i]=1[i]。替换(//g,”);
htmlEncodedNote[i]=htmlEncodedNote[i]。替换(/&/g,“&;”;
out+=htmlEncodedNote[i]+“
”;
}
container.innerHTML=一个[0]+“
”+输出;
这个小函数从未使我错误地将
或
替换为“\n”又名换行符:
var str = document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea').innerHTML = str.replace(/<br\s*[\/]?>/gi, "\n");
var str=document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea')。innerHTML=str.replace(//gi,“\n”);
根据您的示例代码,
在container.innerHTML=htmlEncodedNote之前添加此行代码>
htmlEncodedNote = htmlEncodedNote.replace(/<br>/g,"<br>");
htmlEncodedNote=htmlEncodedNote.replace(/br/g,“
”);
这不是最好的方法,但你可以用这种方法
var container = document.getElementById("tt");
var str = "My name is Amit.<br>This is a invalide tag<test>";
var str = str.replace("<br>", "**AA**");//you may change
var htmlEncodedNote = str.replace(/</g,"<");
htmlEncodedNote = htmlEncodedNote.replace(/>/g,">");
htmlEncodedNote = htmlEncodedNote.replace(/&/g,"&");
var htmlEncodedNote = htmlEncodedNote.replace("**AA**", "<br>");
container.innerHTML = htmlEncodedNote;
var container=document.getElementById(“tt”);
var str=“我的名字是阿米特。
这是一个无效标签”;
var str=str.replace(“
”,“**AA**”)//你可以改变
var htmlEncodedNote=str.replace(//g,“”);
htmlEncodedNote=htmlEncodedNote。替换(/&/g,“&;”;
var htmlEncodedNote=htmlEncodedNote.replace(“**AA**”和“
”);
container.innerHTML=htmlEncodedNote;
htmlEncodedNote.replace(//g,'\n')代码>它不工作<代码>
不显示,即使
也不工作,没有换行符。但请参见换行符未显示。我想在“我的名字是阿米特”之后换行。@user3427540更新:)在第一行之后仍然没有换行。@user3427540再次更新!如果OP有多个
,该怎么办?是的,多个
是可能的。他没有说明这种情况。但是,在这种情况下,名为one
的数组的for
循环将执行来自第二个元素的声明@Vihan1086而且br
和/
之间也可能有空格,所以我认为这将最有效/br\s*\/?/g
var container = document.getElementById("tt");
var str = "My name is Amit.<br>This is a invalide tag<test>";
var str = str.replace("<br>", "**AA**");//you may change
var htmlEncodedNote = str.replace(/</g,"<");
htmlEncodedNote = htmlEncodedNote.replace(/>/g,">");
htmlEncodedNote = htmlEncodedNote.replace(/&/g,"&");
var htmlEncodedNote = htmlEncodedNote.replace("**AA**", "<br>");
container.innerHTML = htmlEncodedNote;