<HTML>
<HEAD>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="text">HR-CT</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Tab-Text-7">my
<EM CLASS="Math-B">i</EM> Stackoverflow
<EM
CLASS="Math-B">i</EM>
<EM CLASS=
"Math-B">i</EM>
<EM CLASS="Math-B">g</EM> UIP-Muster
<EM CLASS="Math-B">m</EM>
</P>
</TD>
</TR>
<TR>
<TD>
<EM CLASS="hoch">C</EM>
<EM CLASS="Math-C">d</EM>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
预期输出:-
("<EM CLASS="Math-C">g</EM>", should be replaced with "⇔").
("<EM CLASS="Math-B">i</EM>", should be replaced with "~").
使用以下代码,我可以轻松替换所有这些标签,但我希望将其转换为 javascript 代码,以便它应该从文本区域读取数据,然后用其他标签替换所有此类标签。
Java 代码:
FileInputStream fstream;
FileOutputStream fout;
DataInputStream in1;
BufferedReader br;
BufferedWriter bw=null;
String htmlText=null;
String line;
fstream = new FileInputStream("D:\\Special symbol
files\\test symbol.htm");
String st=" ";
fout = new FileOutputStream("D:\\Special symbol files\\test
symbol new.html",true);
in1 = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in1,"UTF-8"));
reader = new FileInputStream("D:\\Special symbol files\\test
symbol.htm");
bw=new BufferedWriter(new OutputStreamWriter(fout,"UTF-8"));
while ((line=br.readLine()) != null)
{
htmlText=htmlText+line;
}
//htmlText=extractText(reader);
System.out.println("html content :"+htmlText);
System.out.println("index:"+htmlText.indexOf("<EM
CLASS=\"Math-C\">o</EM>"));
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">i</EM>",
"~");
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">l</EM>",
"<EM CLASS=\"Math-B\">l</EM>");
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">j</EM>",
"<EM CLASS=\"Math-B\">j</EM>");
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">g</EM>",
"<EM CLASS=\"Math-B\">g</EM>");
/*pattern = Pattern.compile("<EM CLASS=\"Math-B\">\\s*m\\s*</EM>");
m = pattern.matcher(htmlText);
htmlText=m.replaceAll("≥");*/
htmlText=regExp(htmlText,"Math-B","m","≥");
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">+</EM>", "÷");
htmlText=htmlText.replace("<EM CLASS=\"Math-B\">[</EM>", "≤");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">o</EM>", "↓");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">m</EM>", "↑");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">u</EM>", "⇒");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">e</EM>", "⇒");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">t</EM>", "→");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">d</EM>", "→");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">r</EM>", "←");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">b</EM>", "←");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">w</EM>", "⇔");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">g</EM>", "⇔");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">s</EM>", "⇐");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">c</EM>", "⇐");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">n</EM>", "⇑");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">p</EM>", "⇓");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">v</EM>", "↔");
htmlText=htmlText.replace("<EM CLASS=\"Math-C\">f</EM>", "↔");
htmlText=htmlText.replace(">", ">\n");
bw.write(htmlText);
bw.close();
在上面代码的帮助下,我可以替换标签,但是我需要将此java代码转换为java脚本,通过该脚本将数据粘贴到文本区域,可以通过单击按钮轻松替换。 http://jsfiddle.net/yk6Tq/4/ (供引用)
任何人都可以帮帮我!
最佳答案
您可以做的是创建一个要替换的标签数组,如下所示
var array = {
'<EM CLASS="Math-C">d</EM>':'⇔',
'<EM CLASS="hoch">C</EM>':'<sup>C</sup>',
'<EM CLASS="Math-B">g</EM>':'œ',
'<EM CLASS="Math-B">i</EM>':'~'
}
现在您可以循环遍历数组并替换字符串中的值。
var originalText = $('#txtArea').val();
var finalText = originalText;
for (var val in array)
finalText = finalText.replace(new RegExp(val, "g"), array[val]);
这是一个工作 JSFiddle对于同样的。
关于javascript - 是否可以从粘贴在文本区域的 html 页面中找到此类标签,并将其标签替换为 javascript 代码中提到的其他标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987818/