Maison  >  Questions et réponses  >  le corps du texte

Utiliser regex pour remplacer le HTML dans div et ajouter un espacement

Salut, j'aimerais de l'aide pour créer une regex qui remplace toutes les balises html mais lorsque le div de fin et le div de début sont côte à côte, cela ajoute un espace comme

此<b>is</b> <div>a</div><div>test</div>

这是一个测试

Mon regex actuelle est /(<([^>]+)>)/ig qui remplacera toutes les balises html mais je veux savoir comment chaque fois qu'il y a un div de fermeture et le div d'ouverture suivant Ajouter un espace à chacun autre.

J'ai essayé de remplacer le HTML valide par /(<([^>]+)>)/ig mais j'ai besoin d'aide pour l'espacement des div lorsqu'ils sont côte à côte

P粉043432210P粉043432210167 Il y a quelques jours408

répondre à tous(1)je répondrai

  • P粉296080076

    P粉2960800762024-04-03 10:33:20

    JS prend en charge l'analyse HTML. Utilisez plutôt ceci :

    function getSpaceSeparatedText(html) {
      // Create an element and use it as a parser
      let parser = document.createElement('div');
      
      parser.innerHTML = html;
      
      const result = [];
      
      for (const node of parser.childNodes) {
        // Get the trimmed text
        const text = node.textContent.trim();
        
        // If text is not empty, add it to result
        if (text) {
          result.push(text);
        }
      }
      
      return result.join(' ');
    }
    

    Essayez-le :

    console.config({ maximize: true });
    
    function getSpaceSeparatedText(html) {
      let parser = document.createElement('div');
      
      parser.innerHTML = html;
      
      const result = [];
      
      for (const node of parser.childNodes) {
        const text = node.textContent.trim();
        
        if (text) {
          result.push(text);
        }
      }
      
      return result.join(' ');
    }
    
    const html = `
    This is 
    
    a
    test
    `; console.log(getSpaceSeparatedText(html));
    sssccc

    répondre
    0
  • Annulerrépondre