Pregunta

Sólo una cadena. Añadir \' para que cada vez que hay una comilla simple.

¿Fue útil?

Solución

replace trabaja para la primera cita, por lo que necesita una pequeña expresión regular:

str = str.replace(/'/g, "\\'");

Otros consejos

siguiente JavaScript función mangos',", b \, \ t, \ n, \ f o \ r equivalente a addslashes función php ().

function addslashes(string) {
    return string.replace(/\\/g, '\\\\').
        replace(/\u0008/g, '\\b').
        replace(/\t/g, '\\t').
        replace(/\n/g, '\\n').
        replace(/\f/g, '\\f').
        replace(/\r/g, '\\r').
        replace(/'/g, '\\\'').
        replace(/"/g, '\\"');
}

Una cadena se puede escapar de forma integral y compacta usando JSON.stringify. Es parte de JavaScript como de ECMAScript 5 y apoyado por las principales versiones más recientes del navegador.

str = JSON.stringify(String(str));
str = str.substring(1, str.length-1);

Con este enfoque, también caracteres especiales como el byte nulo, los caracteres Unicode y saltos de línea y \r \n se escapó adecuadamente en un comunicado relativamente compacto.

Para estar seguro, es necesario no sólo reemplazar las comillas simples, pero así los ya escapados:

"first ' and \' second".replace(/'|\\'/g, "\\'")

Una respuesta que no pidió que puede ser útil, si está haciendo la sustitución en la preparación para el envío de la cadena en alerta () -. O cualquier otra cosa que un solo carácter de comillas que podría tropezar

str.replace("'",'\x27')

Esto reemplazará todos comillas simples con el código hexadecimal para la comilla simple.

var myNewString = myOldString.replace(/'/g, "\\'");
var str = "This is a single quote: ' and so is this: '";
console.log(str);

var replaced = str.replace(/'/g, "\\'");
console.log(replaced);

Te da:

This is a single quote: ' and so is this: '
This is a single quote: \' and so is this: \'
if (!String.prototype.hasOwnProperty('addSlashes')) {
    String.prototype.addSlashes = function() {
        return this.replace(/&/g, '&') /* This MUST be the 1st replacement. */
             .replace(/'/g, ''') /* The 4 other predefined entities, required. */
             .replace(/"/g, '"')
             .replace(/\\/g, '\\\\')
             .replace(/</g, '&lt;')
             .replace(/>/g, '&gt;').replace(/\u0000/g, '\\0');
        }
}

Uso: alerta (str.addSlashes ());

ref: https://stackoverflow.com/a/9756789/3584667

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top