Pugazh:
Eu estou tentando substituir todos [space]
com -
entre __tt
ett__
Eu poderia substituir espaço em toda a cadeia de caracteres com regex abaixo.
var str = document.getElementById('tt').value;
str = str.replace(/(?<=__tt.*) (?=.*tt__)/g, '-');
console.log(str);
textarea {
width: 400px;
min-height: 100px;
}
<textarea id="tt">This is a long text __tt where i want
to replace
some text tt__ between some character
</textarea>
Existe uma maneira que eu poderia fazer a substituir apenas entre __tt
e tt__
tag ???
A quarta pássaro:
Sem lookarounds, que ainda não são totalmente suportados por todos os navegadores que você também pode usar um substituto usando uma função de retorno sobre apenas o jogo selecionado.
str = str.replace(/__tt.*?tt__/g, m => m.replace(/ /g, "-"));
var str = 'This is a long text __tt where i want to replace some text tt__ between some character';
str = str.replace(/__tt.*?tt__/g, m => m.replace(/ /g, "-"));
console.log(str);
Nota
Se você quiser um único hífen na substituição de vários espaços consecutivos, você poderia repetir o espaço de 1 ou mais vezes usando +
ou correspondem a 1 ou mais espaços em branco caracteres usando\s+
Com a questão atualizado, obter o texto do elemento:
var elm = document.getElementById("tt");
elm.textContent = elm.textContent.replace(/__tt[^]*?tt__/g, m => m.replace(/ +/g, "-"));
<textarea id="tt" rows="4" cols="50">This is a long text __tt where i want
to replace
some text tt__ between some character
</textarea>