質問

ただ、文字列。 \」、それを単一引用符があるたびに追加します。

役に立ちましたか?

解決

replaceあなたは小さな正規表現を必要とするので、最初の引用のために働きます

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

他のヒント

次のJavaScript関数ハンドル」、」、\ B、\ T、\ nは、\ Fまたは\ PHPの関数にaddslashesのR等価()。

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

は、文字列を総合脱出し、コンパクトにJSON.stringifyを使用することができます。これはのECMAScript 5 と主要な新しいブラウザのバージョンによってサポートされます。

のようはJavaScriptの一部であり、
str = JSON.stringify(String(str));
str = str.substring(1, str.length-1);

ヌル・バイトのUnicode文字と改行\r\nなどの特殊文字は、比較的コンパクトな文で正しくエスケープされても、このアプローチを使用します。

確かに、あなただけではなく、単一引用符を交換する必要があるが、同様に、すでに脱出したもの:

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

あなたが警告に文字列を送信するための準備中に交換をやっている場合には、役立つかもしれないため)(聞いていなかった答え - または単一引用符文字があなたをつまずかせるかもしれない何か

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

これは、単一引用符のためにの進コードの持つすべての単一引用符を置き換えます。

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);
あなたを与えるます:

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

使用方法:警告(str.addSlashes());

参照: https://stackoverflow.com/a/9756789/3584667

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top