Escaping Strings in JavaScript

JavaScript ha una funzione incorporata come la funzione addslashes (o addcslashes ) di addcslashes per aggiungere barre retroverse ai caratteri che richiedono la fuga in una stringa?

Ad esempio, questo:

Questa è una stringa demo con “virgolette singole” e “virgolette doppie”.

…potrebbe diventare:

Questa è una stringa dimostrativa con \ “virgolette singole \” e \ “virgolette \”.

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

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

    Puoi anche provare questo per le doppie virgolette:

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

    Una variazione della funzione fornita da Paolo Bergantino che lavora direttamente su 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'); } 

    Aggiungendo il codice qui sopra nella tua libreria sarai in grado di fare:

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

    MODIFICARE:

    Seguendo i suggerimenti nei commenti, chiunque sia interessato ai conflitti tra le librerie JavaScript può aggiungere il seguente codice:

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

    Usa encodeURI ()

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI

    Evita praticamente tutti i caratteri problematici nelle stringhe per la corretta codifica e transito JSON da utilizzare nelle applicazioni web. Non è una soluzione di convalida perfetta, ma cattura i frutti a basso impatto.