javascript - 将变量中的所有字符串 "<"和 ">"替换为 "&lt;"和 "&gt;"

标签 javascript jquery string loops replace

我目前正在尝试编写一个输入表单,您可以在其中键入和格式化文本以供以后用作 XML 条目。为了使 HTML 代码可读为 XML,我必须用相应的符号代码替换代码括号,即 <&lt;>&gt; .

格式化的文本通过变量 inputtext 以 HTML 代码的形式传输,所以我们有例如文本

The <b>Genji</b> and the <b>Heike</b> waged a long and bloody war.

需要转换成

The &lt;b&gt;Genji&lt;/b&gt; and the &lt;b&gt;Heike&lt;/b&gt; waged a long and bloody war.

我用 .replace() 函数试了一下:

inputxml = inputxml.replace("<", "&lt;");       
inputxml = inputxml.replace(">", "&gt;");

但这只会替换第一次出现的括号。我很确定我需要某种循环;我也尝试使用 each()来自 jQuery 的函数(一位 friend 推荐我查看了 jQuery 包),但我对一般的编码仍然是新手,我很难让它工作。

您将如何编写一个循环来替换上述变量中​​的代码括号?

附加信息

当然,您认为这是更大事物的一部分的假设是正确的。我是一名日本研究的研究生,目前,我正在尝试以一种更易于理解的方式可视化有关日本历史的信息。为此,我使用了麻省理工学院研究生开发的 Simile Timeline API。您可以在 my homepage 上查看时间线的工作测试。 .

Simile Timeline 使用基于 AJAX 和 Javascript 的 API。如果您不想在自己的服务器上安装 AJAX 引擎,您可以从 MIT 实现时间线 API。时间线的数据通常由一个或多个 XML 文件或 JSON 文件提供。就我而言,我使用 XML 文件;您可以查看 this example 中的 XML 结构.

在时间轴内,有所谓的“事件”,您可以单击这些事件以在信息气泡弹出窗口中显示其他信息。这些信息气泡中的文本源自 XML 源文件。现在,如果您想在信息气泡中进行一些 HTML 格式化,则不能使用代码括号,因为它们只会显示为纯文本。但是,如果您使用符号代码而不是普通括号,它会起作用。

时间线的内容将由绝对且完全不习惯编码标记的人编写,即历史学家、艺术史学家、社会学家,其中有几位 50 岁及以上的人。我试图向他们解释如果他们想要创建时间线,他们必须如何格式化 XML 文件,但他们偶尔会滑倒并在时间线未加载时感到沮丧,因为他们忘记关闭括号或包含撇号.

为了使它更容易,我尝试制作一个易于使用的输入表单,您可以在其中输入所有信息并格式化文本所见即所得的样式,然后将其转换为 XML 代码,您只需复制和粘贴到 XML 源文件中。它的大部分工作正常,尽管我仍在努力转换主文本字段中的文本标记。

将代码括号转换为符号代码是我为了拥有一个有效的输入表单而需要做的最后一件事。

最佳答案

看这里:

http://www.bradino.com/javascript/string-replace/

只需使用这个正则表达式来替换所有:

str = str.replace(/\</g,"&lt;")   //for <
str = str.replace(/\>/g,"&gt;")   //for >

关于javascript - 将变量中的所有字符串 "<"和 ">"替换为 "&lt;"和 "&gt;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6093986/

相关文章:

java - 相同的字符串比较给我错误

javascript - Javascript 中的 typeof(NaN) 是什么?

javascript - 清除/删除 Jquery 组合框

javascript - 使用jquery制作动画涟漪

javascript - 单击工作不正确,它将类添加到标签,然后将其删除

javascript - 如何将两个 jquery 对象一起制作动画

php - 如何从php中的字符串中删除括号?

javascript - CKEditor 在服务器上返回错误的图像路径

javascript - myDoughnut 动画上的 setInterval

java - 如何从java中的字符串中提取子字符串