Question

Juste une chaîne. Ajouter \ » à chaque fois qu'il ya une seule citation.

Était-ce utile?

La solution

replace fonctionne pour la première citation, si vous avez besoin d'une petite expression régulière:

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

Autres conseils

poignées suivantes fonction JavaScript », », \ b, \ t, \ n, \ f ou \ r équivalent de addslashes fonction 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, '\\"');
}

Une chaîne peut être échappé complètement et en utilisant JSON.stringify compacte. Il fait partie de JavaScript au ECMAScript 5 et pris en charge par les principales versions de navigateur plus récente.

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

En utilisant cette approche, aussi les caractères spéciaux comme l'octet nul, caractères unicode et les sauts de ligne \r et \n sont correctement échappés dans un communiqué relativement compact.

Pour être sûr, vous devez non seulement remplacer les guillemets simples, mais aussi bien ceux qui sont déjà échappées:

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

Une réponse que vous n'avez pas demandé qui peut être utile, si vous faites le remplacement en cours de préparation pour envoyer la chaîne d'alerte () -. Ou quoi que ce soit d'autre où un caractère de guillemet simple peut vous faire trébucher

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

qui remplacera tous les guillemets simples avec le pour guillemet simple code hexadécimal .

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);

Vous donne:

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');
        }
}

Utilisation: alerte (str.addSlashes ());

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top