📜  js 将字符转换为 html - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:23.835000             🧑  作者: Mango

JS将字符转换为HTML

在Web开发中,我们经常需要将一些字符转换为HTML格式,例如将特殊字符转义为HTML实体,或者将一段纯文本转换为HTML代码以在网页中显示。在本文中,我们将介绍如何使用JavaScript将字符转换为HTML。

将特殊字符转义为HTML实体

在HTML中,某些字符拥有特殊含义,例如 <>&等,如果在HTML中直接使用这些字符,会导致显示错误,甚至会被浏览器解释为HTML代码造成安全问题。此时,我们需要将这些特殊字符转义为HTML实体。以下是一些常见的HTML实体及其对应的字符:

| 字符 | 实体名称 | 实体编号 | | --- | --- | --- | | < | < | < | | > | > | > | | & | & | & | | " | " | " | | ' | ' | ' |

我们可以使用以下的JavaScript函数来将特殊字符转义为HTML实体:

function escapeHtml(str) {
  return String(str)
    .replace(/&/g, '&amp;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#39;')
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;');
}

该函数将传入的字符串中的 &"'<> 进行替换,并返回转义后的字符串。以下是使用该函数的示例:

const str = 'Hello <World> & JavaScript';
const html = escapeHtml(str);
console.log(html);
// 输出:Hello &lt;World&gt; &amp; JavaScript
将纯文本转换为HTML代码

如果我们需要在网页上显示一些纯文本内容,并且希望这些文本保留一些特定的格式(例如换行、加粗、斜体等),我们可以将这些纯文本转换为HTML代码,并使用HTML中的标签来表示这些格式。

以下是一些常用的HTML标签及其含义:

| 标签 | 含义 | | --- | --- | | <p> | 段落 | | <br> | 换行 | | <b> | 加粗 | | <i> | 斜体 | | <a> | 链接 |

我们可以使用以下的JavaScript函数来将纯文本转换为HTML代码:

function textToHtml(str) {
  return str
    .replace(/\n/g, '<br>')
    .replace(/\*(.*?)\*/g, '<b>$1</b>')
    .replace(/_(.*?)_/g, '<i>$1</i>')
    .replace(/([a-zA-Z]+:\/\/[^\s]+)/g, '<a href="$1">$1</a>');
}

该函数将传入的字符串中的 \n 转换为 <br> ,将以 * 包括的内容转换为 <b> 标签,将以 _ 包括的内容转换为 <i> 标签,将以 http://https:// 开头的内容转换为 <a> 标签,并加上链接地址。以下是使用该函数的示例:

const str = 'Hello World!\nThis is a *text* with _special characters_.\nThe URL is http://www.google.com';
const html = textToHtml(str);
console.log(html);
// 输出:<p>Hello World!<br>This is a <b>text</b> with <i>special characters</i>.<br>The URL is <a href="http://www.google.com">http://www.google.com</a></p>
总结

本文介绍了如何使用JavaScript将字符转换为HTML。我们可以使用 escapeHtml() 函数将特殊字符转义为HTML实体,使用 textToHtml() 函数将纯文本转换为HTML代码。在Web开发中,应当注意安全问题,避免XSS攻击。