Escapando Strings em JavaScript

O JavaScript tem uma function addslashes como a function addslashes (ou addcslashes ) do addcslashes para adicionar barras invertidas a caracteres que precisam escaping em uma string?

Por exemplo, isso:

Esta é uma string de demonstração com ‘aspas simples’ e ‘aspas duplas’.

…se tornaria:

Esta é uma string de demonstração com \ ‘aspas simples \’ e \ “aspas duplas \”.

http://locutus.io/php/strings/addslashes/

 function addslashes( str ) { return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0'); } 

Você também pode tentar isso para as aspas duplas:

 JSON.stringify(sDemoString).slice(1, -1); JSON.stringify('my string with "quotes"').slice(1, -1); 

Uma variação da function fornecida por Paolo Bergantino que funciona diretamente no String:

 String.prototype.addSlashes = function() { //no need to do (str+'') anymore because 'this' can only be a string return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0'); } 

Ao adicionar o código acima em sua biblioteca, você poderá fazer:

 var test = "hello single ' double \" and slash \\ yippie"; alert(test.addSlashes()); 

EDITAR:

Seguindo as sugestões nos comentários, quem estiver preocupado com conflitos entre bibliotecas JavaScript pode adicionar o seguinte código:

 if(!String.prototype.addSlashes) { String.prototype.addSlashes = function()... } else alert("Warning: String.addSlashes has already been declared elsewhere."); 

Use encodeURI ()

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/encodeURI

Escapa praticamente todos os caracteres problemáticos em strings para codificação JSON adequada e trânsito para uso em aplicativos da web. Não é uma solução de validação perfeita, mas pega o fruto mais fácil.