javascript - 是否可以从粘贴在文本区域的 html 页面中找到此类标签​​,并将其标签替换为 javascript 代码中提到的其他标签?

标签 javascript java jquery html

<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 "&#8660;").
("<EM CLASS="Math-B">i</EM>", should be replaced with "&#126;").

使用以下代码,我可以轻松替换所有这些标签,但我希望将其转换为 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>", 
"&#126;");
            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("&ge;");*/
            htmlText=regExp(htmlText,"Math-B","m","&ge;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-B\">+</EM>", "&#247;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-B\">[</EM>", "&le;");

            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">o</EM>", "&#8595;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">m</EM>", "&#8593;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">u</EM>", "&#8658;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">e</EM>", "&#8658;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">t</EM>", "&#8594;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">d</EM>", "&#8594;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">r</EM>", "&#8592;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">b</EM>", "&#8592;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">w</EM>", "&#8660;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">g</EM>", "&#8660;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">s</EM>", "&#8656;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">c</EM>", "&#8656;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">n</EM>", "&#8657;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">p</EM>", "&#8659;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">v</EM>", "&#8596;");
            htmlText=htmlText.replace("<EM CLASS=\"Math-C\">f</EM>", "&#8596;");

            htmlText=htmlText.replace(">", ">\n");
            bw.write(htmlText);
            bw.close();

在上面代码的帮助下,我可以替换标签,但是我需要将此java代码转换为java脚本,通过该脚本将数据粘贴到文本区域,可以通过单击按钮轻松替换。 http://jsfiddle.net/yk6Tq/4/ (供引用)

任何人都可以帮帮我!

最佳答案

您可以做的是创建一个要替换的标签数组,如下所示

var array = {
            '<EM CLASS="Math-C">d</EM>':'&#8660;', 
            '<EM CLASS="hoch">C</EM>':'<sup>C</sup>',
            '<EM CLASS="Math-B">g</EM>':'&#156;',
            '<EM CLASS="Math-B">i</EM>':'&#126;'
        }

现在您可以循环遍历数组并替换字符串中的值。

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/

相关文章:

java - 我们如何在 HTTPS 中执行我们自己的证书验证步骤

java - 数组空指针异常

javascript - 如何使用jquery Ajax调用来调用类的方法

javascript - jQuery CarouFredSel 插件触发配置

javascript - 如果在此期间发生其他事件,如何停止调用延迟函数?

javascript - 我如何将点击事件定位到 Angular 2 中的另一个组件

javascript - 为什么非语言相关的全局对象包含在 JavaScript 中?

javascript - 如何用分号分隔逗号、分号和逗号分隔的短语?

javascript - Firebase 如何退订

Java 8 - For Each 和 removeIf