AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 77715877
Accepted
Nancy Moore
Nancy Moore
Asked: 2023-12-26 14:05:37 +0800 CST2023-12-26 14:05:37 +0800 CST 2023-12-26 14:05:37 +0800 CST

como substituir corretamente o hífen por elementos div em javascript

  • 772

Eu tenho o seguinte texto stackoverflow-is-the-best-site-in-the-world por hífen. Preciso substituir esses hífens e colocar cada texto nas tags div conforme o exemplo de resultado abaixo

<div class='cssx'>stackoverflow</div>
<div class='cssx'>is</div>
<div class='cssx'>the</div>
<div class='cssx'>best</div>
<div class='cssx'>in</div>
<div class='cssx'>the</div>
<div class='cssx'>world</div>

Em PHP posso fazê-lo funcionar da seguinte maneira.

<?php
$str ="stackoverflow-is-the-best-site-in-the-world";
echo $output = str_replace('-', "<div class='cssx'></div>", $str);

?>

Aqui está o meu problema. Preciso fazê-lo funcionar com javascript. Para este efeito, aproveitei a solução aqui fonte

mas não consigo fazê-lo funcionar.

aqui está o código até agora.

const str ="stackoverflow-is-the-best-site-in-the-world";

var output = "<div class='cssx'>" + 
"text.replace(/-/g, "</div><div class='cssx'>", str)" +
 "</div>";

alert(output);
javascript
  • 5 5 respostas
  • 52 Views

5 respostas

  • Voted
  1. Amit Mohanty
    2023-12-26T14:10:03+08:002023-12-26T14:10:03+08:00

    Você pode usar a split()função para separar a string em um array de palavras e então usar map()para criar um novo array com cada palavra envolvida em <div>tags.

    let str = "stackoverflow-is-the-best-site-in-the-world";
    let wordsArray = str.split('-');
    
    let output = wordsArray.map(word => `<div class='cssx'>${word}</div>`).join('');
    
    console.log(output);

    • 3
  2. Sree Kumar
    2023-12-26T14:19:18+08:002023-12-26T14:19:18+08:00

    Se você quiser manter seu estilo de código, substitua esta linha:

    "text.replace(/-/g, "</div><div class='cssx'>", str)"
    

    com

    str.replaceAll( "-", "</div><div class='cssx'>" )
    

    Razões:

    1. Você tem citações em torno da text.replace(..)chamada. Isso tornará o próprio código o texto.
    2. Não há nenhuma variável chamada text. Portanto, substitua-o por strsua variável real.
    3. replace(..)substituirá apenas a primeira instância. Você precisa replaceAll(..)substituir todos -os s.
    • 1
  3. Akshay Ghadge
    2023-12-26T14:21:24+08:002023-12-26T14:21:24+08:00

    Você pode adicionar a tag abaixo à sua página HTML para que funcione da mesma forma que o PHP acima.

    <script>
    var inputText = "stackoverflow-is-the-best-site-in-the-world";
    var words = inputText.split('-');
    
    for (var i = 0; i < words.length; i++) {
        document.write("<div class='cssx'>" + words[i] + "</div>");
    }
    

    Ele divide o texto de entrada em uma matriz de palavras usando o método split e, em seguida, itera pela matriz, escrevendo cada palavra cercada por tags e no documento

    • 1
  4. Best Answer
    mandy8055
    2023-12-26T14:15:55+08:002023-12-26T14:15:55+08:00

    Seu código só precisa de uma pequena correção. Você deve chamar o método replace na strvariável em vez de usá-lo como uma string. Algo como:

    const str = "stackoverflow-is-the-best-site-in-the-world";
    
    const output = "<div class='cssx'>" +
      str.replace(/-/g, "</div><div class='cssx'>") +
      "</div>";
    
    alert(output);

    • 0
  5. Avinash Jagtap
    2023-12-26T14:38:54+08:002023-12-26T14:38:54+08:00

    Abaixo do código javascript funcionará perfeitamente

    function convertToDivs(input) {
      const words = input.split('-');
      let output = '';
      for (const word of words) {
        output += `<div class='cssx'>${word}</div>\n`;
      }
      return output;
    }
    
    const input = 'stackoverflow-is-the-best-site-in-the-world';
    const output = convertToDivs(input);
    console.log(output);

    • 0

relate perguntas

  • classificação de mesclagem não está funcionando - código Javascript: não é possível encontrar o erro mesmo após a depuração

  • método select.remove() funciona estranho [fechado]

  • Sempre um 401 res em useOpenWeather () - react-open-weather lib [duplicado]

  • O elemento de entrada não possui atributo somente leitura, mas os campos ainda não podem ser editados [fechado]

  • Como editar o raio do primeiro nó de um RadialTree D3.js?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    destaque o código em HTML usando <font color="#xxx">

    • 2 respostas
  • Marko Smith

    Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}?

    • 1 respostas
  • Marko Smith

    Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)?

    • 2 respostas
  • Marko Smith

    Por que as compreensões de lista criam uma função internamente?

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 respostas
  • Marko Smith

    Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)?

    • 4 respostas
  • Marko Smith

    Por que o construtor de uma variável global não é chamado em uma biblioteca?

    • 1 respostas
  • Marko Smith

    Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto?

    • 1 respostas
  • Marko Smith

    Somente operações bit a bit para std::byte em C++ 17?

    • 1 respostas
  • Martin Hope
    fbrereto Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi Por que as compreensões de lista criam uma função internamente? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A formato fmt %H:%M:%S sem decimais 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python std::views::filter do C++20 não filtrando a visualização corretamente 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa Por que o construtor de uma variável global não é chamado em uma biblioteca? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev Por que os compiladores perdem a vetorização aqui? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan Somente operações bit a bit para std::byte em C++ 17? 2023-08-17 17:13:58 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve