JavaScript には、文字列でエスケープする必要がある文字にバックスラッシュを追加するPHP のaddslashes
(または) 関数のような組み込み関数がありますか?addcslashes
たとえば、次のようになります。
これは、「一重引用符」と「二重引用符」を使用したデモ文字列です。
...次のようになります。
これは、\'一重引用符\' と \"二重引用符\" を使用したデモ文字列です。
JavaScript には、文字列でエスケープする必要がある文字にバックスラッシュを追加するPHP のaddslashes
(または) 関数のような組み込み関数がありますか?addcslashes
たとえば、次のようになります。
これは、「一重引用符」と「二重引用符」を使用したデモ文字列です。
...次のようになります。
これは、\'一重引用符\' と \"二重引用符\" を使用したデモ文字列です。
http://locutus.io/php/strings/addslashes/
function addslashes( str ) {
return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
二重引用符でこれを試すこともできます:
JSON.stringify(sDemoString).slice(1, -1);
JSON.stringify('my string with "quotes"').slice(1, -1);
パオロ・ベルガンティーノによって提供された 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.");