Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

prompt

[Resolvido] Replace todas as aspas dentro de umaString

Recommended Posts

Fala galera, beleza?

 

Estou tentando fazer o replace de um texto com aspas simples e aspas duplas, para mandar para o banco logo depois.

Porém como estou usando ajax preciso fazer este tratamento no javazcript antes de mandar para a página que fará a gravação (sem post, claro)

 

Ai está, estou fazendo da seguinte forma e o que acontece é que ele faz o replace apenas de uma das aspas.. segue abaixo antes, código e depois:

 

Código em Javascript:

VarTrataTexto_js = document.getElementById("texto").value;
VarTrataTexto_js = VarTrataTexto_js.replace( "'", "aspaSimple");
VarTrataTexto_js = VarTrataTexto_js.replace( '"', "aspaDupla");
alert(VarTrataTexto_js)

A string antes do replace é assim (dentro de uma textarea): "blablablabla" , 'blablablabla'

 

E o que o alert(); traz é: aspaDuplablablablabla" , aspaSimpleblablablabla'

 

 

o que tenho que fazer para funcionar para todos as aspas do texto?

 

Valeu pessoal.

Prompt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da maneira como você está fazendo, apenas a primeira ocorrência será substituída. Para que funcione, você deveria criar um ciclo "for" e percorrer letra por letra, comparando se a letra do ciclo atual corresponde a aspas duplas (") ou simples (').

 

Com expressões regulares o código ficará um pouquinho menor:

 

<script type="text/javascript">
var texto = "Expressões \"regulares\" em 'Javascript' para iniciantes! 'Não perca'! \"Inacreditável!\"";

var RegExp = /["|']/g;
 	texto=texto.replace(RegExp,"");
    alert(texto);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da maneira como você está fazendo, apenas a primeira ocorrência será substituída. Para que funcione, você deveria criar um ciclo "for" e percorrer letra por letra, comparando se a letra do ciclo atual corresponde a aspas duplas (") ou simples (').

 

Com expressões regulares o código ficará um pouquinho menor:

 

<script type="text/javascript">
var texto = "Expressões \"regulares\" em 'Javascript' para iniciantes! 'Não perca'! \"Inacreditável!\"";

var RegExp = /["|']/g;
 	texto=texto.replace(RegExp,"");
    alert(texto);
</script>

 

Show Klonder, brigadão cara, só vou acrescentar uma coisa que mudei pois mesmo assim tinha o mesmo problema.

 

Quando postei o código eu buscava o valor do campo texto pelo ID e quardava numa variável antes de fazer o replace.

Ai que alterei pois, assim que atribuia o valor a variável, tinha várias aspas simples e duplas, ai quando ia tratar a variável tinha problema pois oreplace interrompia por causa delas mesmo. Então fiz o replace no próprio valor do campo no instante em que o puxei e só ai o atribui a uma variável. Segue abaixo como ficou pessoal:

 

var RegExp = /["|']/g;
VarTrataTexto_js = document.getElementById("texto").value.replace(RegExp,"\"");
alert(VarTrataTexto_js);

Problema resolvido.

Brigadão Klonder e galera pela força!

 

Prompt

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.