js使用正则表达式删除 HTML 多余空行的方法

下面是一种使用正则表达式删除 HTML 多余空行的方法,可以将其封装为函数,接收参数为包含 HTML 代码的文本。以下是代码示例:

function removeHtmlEmptyLines(html) {
  // 使用正则表达式替换多余的换行符
  const cleanedHtml = html.replace(/[\r\n]+/g, '\n');

  // 将替换后的 HTML 代码作为 DOM 元素插入到一个临时的 div 中
  const tempDiv = document.createElement('div');
  tempDiv.innerHTML = cleanedHtml;

  // 遍历 div 中的所有子节点
  for (let i = 0; i < tempDiv.childNodes.length; i++) {
    const node = tempDiv.childNodes[i];

    // 如果当前节点是文本节点,且它的前一个兄弟节点
    // 也是文本节点,则删除其中的一个(即前一个)。
    if (node.nodeType === Node.TEXT_NODE) {
      const prevSibling = node.previousSibling;
      if (prevSibling && prevSibling.nodeType === Node.TEXT_NODE) {
        prevSibling.textContent += node.textContent;
        tempDiv.removeChild(node);
        i--; // 删除节点后,更新计数器避免跳过节点
      }
    }
  }

  // 从 tempDiv 中获取净化后的 HTML 代码
  const purgedHtml = tempDiv.innerHTML;

  // 删除 tempDiv 并返回净化后的 HTML 代码
  tempDiv.parentNode.removeChild(tempDiv);
  return purgedHtml;
}

如上述代码所示,该函数首先使用正则表达式来替换 HTML 代码中的多余空行。这个正则表达式可以匹配多个回车、换行符或者它们的组合,并用一个单独的换行符替换它们。

接下来,将替换后的 HTML 代码作为 DOM 元素插入到一个临时的 <div> 中,并遍历该 <div> 中的所有子节点。如果当前节点是文本节点,并且其前一个兄弟节点也是文本节点,则将这两个文本节点合并成一个。

最后,从临时的 <div> 中获取净化后的 HTML 代码,并将该 <div> 删除。

使用此函数时,只需将 HTML 代码作为字符串传递给函数即可:

const html = `
  <div>
    <p>这是第一段</p>


    <p>这是第二段</p>

    <p>这是第三段</p>
  </div>
`;

const purgedHtml = removeHtmlEmptyLines(html);
console.log(purgedHtml);

js删除最后字符串中的最后一个字符

获取字符串的长度我们可以使用字符串的 length 属性来获取字符串的长度,就像这样:const str = &quot;hello&quot;;const len = str.length; // len 的值为 5使用 substring 方法删除最后一个字符串有了字符串的长度,我们就可以使用 substring 方法来删除最后一个字符了。具体步骤如下:获取字符串的长度 len;使用 substring 方法从索引 0 开始,取到索引为 len-1 的子串,也就是删除最后一个字符;将删除最后一个字符后的...

日期:2023-04-18 22:30:53 浏览:596

js删除 HTML 文本中多余的空格、换行和缩进以及不必要的标签

function cleanHtmlText(htmlText) { // 删除 HTML 标签中的多余空格、换行和缩进 var cleanHtml = htmlText.replace(/\s{2,}/g, ' ').replace(/[\r\n]/g, '').replace(/\&gt;(\s+)/g, '&gt;').replace(/(\s+)\&lt;/g, '&lt;'); // 删除不必要的标签 var tmp = document.createElement('DIV'); tm...

日期:2023-04-18 22:36:08 浏览:605

js让标题闪动进行消息提示

首先,我们需要把修改网页标题和让它闪动这两个功能独立出来。在函数内部,我们定义了三个变量:pageTitle是当前网页的原始标题,isPageActive表示当前页面是否处于活跃状态(即用户正在当前页面),flashInterval则是用于控制标题闪动的定时器。在函数内部,我们定义了一个flash函数,它根据isPageActive变量的值,交替显示原始标题和要闪动的标题。然后,我们监听了页面的聚焦和失焦事件。如果页面失焦(即用户把当前页面切换到了其他页面或其他应用程序),则设置isPageActive为t...

日期:2023-04-18 22:39:34 浏览:635

js将图片转换成ico的方法

首先要在HTML中放置一个按钮和一个用于展示图片的标签,如下所示:&lt;input type=&quot;file&quot; id=&quot;fileInput&quot;&gt;&lt;img id=&quot;preview&quot;&gt;&lt;button type=&quot;button&quot; onclick=&quot;convertToIco()&quot;&gt;转换成ICO&lt;/button&gt;其中,input标签用于选择图片文件,img标签用于预览图片,butt...

日期:2023-04-18 22:43:25 浏览:564

js获取当前日期的函数

function getCurrentDate() { // 创建一个Date对象,自动获取当前日期和时间 const currentDate = new Date(); // 分别获取年、月、日信息 const year = currentDate.getFullYear(); const month = currentDate.getMonth() + 1; // 月份从0开始,所以要加1 const date = currentDate.getDate(); // 拼接成指定格式(这...

日期:2023-04-19 15:05:35 浏览:704

js在控制台中获取console.log()打印的内容

可以使用以下代码在控制台中获取console.log()打印的内容:// 通过重定向console.log()来获取打印的内容let consoleLog = console.log;console.log = function () { // 将参数转换成数组 let args = Array.prototype.slice.call(arguments); // 将日志记录到数组中 console.log.history = console.log.history || []; console...

日期:2023-04-24 16:42:37 浏览:875

js完整实现图片选择和预览的功能

创建HTML页面,包含一个按钮和一个空的div用来展示所选图片:&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;选择图片并预览&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;input type=&quot;file&quot; id=&quot;fileInput&quot;&gt; &lt;div id=&quot;preview&quot;&gt;&lt;/div&gt; &lt;script...

日期:2023-04-24 16:45:13 浏览:742

js通过设置document.title使网页标题闪烁闪动进行提示

function changeTitle(title) { // 首先将网页标题改为参数中传入的标题 document.title = title; // 定义一个计数器,用来记录闪动次数 let count = 0; // 定义一个定时器,每500毫秒执行一次 // 该定时器的作用是让标题在原始状态和闪烁状态之间切换 const timerId = setInterval(() =&gt; { // 如果计数器为偶数,则将标题设置回原来的值 if (count % 2 === 0...

日期:2023-04-24 16:47:09 浏览:555

js使用正则表达式删除 HTML 多余空行的方法

下面是一种使用正则表达式删除 HTML 多余空行的方法,可以将其封装为函数,接收参数为包含 HTML 代码的文本。以下是代码示例:function removeHtmlEmptyLines(html) { // 使用正则表达式替换多余的换行符 const cleanedHtml = html.replace(/[\r\n]+/g, '\n'); // 将替换后的 HTML 代码作为 DOM 元素插入到一个临时的 div 中 const tempDiv = document.createElement...

日期:2023-04-24 16:51:36 浏览:779

一个简单的实现异步加载远程js文件的函数

function loadScript(url, callback) { // 创建script标签 var script = document.createElement('script'); // 设置src属性 script.src = url; // 设置async属性为true,表示异步加载 script.async = true; // 添加onload事件处理函数 script.onload = function() { // 如果有回调函数,则执行回调 if (t...

日期:2023-04-25 09:15:12 浏览:724