70

JavaScript には、文字列でエスケープする必要がある文字にバックスラッシュを追加するPHP のaddslashes(または) 関数のような組み込み関数がありますか?addcslashes

たとえば、次のようになります。

これは、「一重引用符」と「二重引用符」を使用したデモ文字列です。

...次のようになります。

これは、\'一重引用符\' と \"二重引用符\" を使用したデモ文字列です。

4

5 に答える 5

96

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

function addslashes( str ) {
    return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
于 2009-04-20T23:53:05.077 に答える
87

二重引用符でこれを試すこともできます:

JSON.stringify(sDemoString).slice(1, -1);
JSON.stringify('my string with "quotes"').slice(1, -1);
于 2014-04-03T12:30:50.753 に答える
40

パオロ・ベルガンティーノによって提供された 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');
} 

上記のコードをライブラリに追加すると、次のことが可能になります。

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

編集:

コメントの提案に従って、JavaScript ライブラリ間の競合を懸念している人は誰でも次のコードを追加できます。

if(!String.prototype.addSlashes)
{
   String.prototype.addSlashes = function()... 
}
else
   alert("Warning: String.addSlashes has already been declared elsewhere.");
于 2010-03-31T18:51:03.137 に答える