私は、PHPのaddSlashes
のJavaScriptに相当するバージョンを探しています。addslashes JavaScript相当
私は多くのバージョンを発見した、それらのどれも\b
、\t
、\n
、\f
または\r
を処理しません。
完了していることが、このjsFiddleは警告する必要があります:私は\\b
で\b
を置き換えるために\u0008
を使用しましたか\b\t\n\f\r"\\
私は、PHPのaddSlashes
のJavaScriptに相当するバージョンを探しています。addslashes JavaScript相当
私は多くのバージョンを発見した、それらのどれも\b
、\t
、\n
、\f
または\r
を処理しません。
完了していることが、このjsFiddleは警告する必要があります:私は\\b
で\b
を置き換えるために\u0008
を使用しましたか\b\t\n\f\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, '\\"');
}
お知らせ。 JavaScriptの正規表現構文は\b
を受け付けるようには見えませんが、\u0008
を受け入れます。 JavaScriptの文字列リテラル構文は\b
と\u0008
の両方を認識します。
それともphpjs.org
function addslashes(str){
return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
から、この1短いと驚くほどmore efficient:
function as(str) {
var a = {};
a[str] = 1;
return JSON.stringify(a).slice(1,-3);
}
(slice(2, -4)
あなたは、文字列の前後に引用符を必要としない場合)
FWIW '置き換える(/ \ B/g、 '\\ b') 'はjsfiddleのテストでは機能しませんでした。 –
私はちょうどそれに気づき、 '\ u0008'を使用する私の答えを編集しました。 JavaScriptの正規表現構文が '\ b'を認識しないという不一致のようです。 –
ありがとう、素晴らしい作品。 – GAgnew