Javascript - 将HTML标签从textarea替换为div

时间:2018-04-21 21:47:45

标签: javascript jquery html

出于个人目的,我正在尝试使用div(z-index 1)和textarea(z-index 2,opacity 0.2)创建代码编辑器。

使用JQuery和keyUp事件,我在替换彩色标签中的所有标签后,使用div上的.html()替换textarea的文本。

但我有一个奇怪的但我无法解释。我使用以下代码:

str.replace('/</g', "&lt;");

这似乎不起作用。写作&#34;测试&lt;&#34;将显示&#34; test&lt;&#34 ;,但是再写一封信会切断文本。

For example : 
- Example : "test <i" will show "test ".
- Example 2 : "test < a <i" will show "test < a ".
- Keep in mind : Actually, "test <" show "test <", not "test &lt;".

(示例似乎在stackoverflow上被破坏,所以我习惯缩进示例)

任何想法?

2 个答案:

答案 0 :(得分:2)

javascript引擎将您的正则表达式视为字符串,然后搜索字符串,您需要删除引号

"test < a <i".replace(/</g, "&lt;");

浏览器将关闭未关闭的代码,这就是您不会将<i视为文字的原因

答案 1 :(得分:0)

使用此代码,例如:

str = str.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/&lt;title&gt;/, "<span style='color:blue;'>&lt;title&gt;</span>");

Thanx!