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);
Você pode usar a
split()
função para separar a string em um array de palavras e então usarmap()
para criar um novo array com cada palavra envolvida em<div>
tags.Se você quiser manter seu estilo de código, substitua esta linha:
com
Razões:
text.replace(..)
chamada. Isso tornará o próprio código o texto.text
. Portanto, substitua-o porstr
sua variável real.replace(..)
substituirá apenas a primeira instância. Você precisareplaceAll(..)
substituir todos-
os s.Você pode adicionar a tag abaixo à sua página HTML para que funcione da mesma forma que o PHP acima.
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
Seu código só precisa de uma pequena correção. Você deve chamar o método replace na
str
variável em vez de usá-lo como uma string. Algo como:Abaixo do código javascript funcionará perfeitamente