入力が普通の一重引用符'
を含む場合、最初にバックスラッシュをエスケープする必要があるプロトタイプメソッドを作成しようとしています\
。 (私はプロトタイプを拡張することは他のほとんどの状況では悪い習慣であることに気付いています。これは単なる実践上の問題です。)正規表現に関連する質問ですが、私はまだ何かが欠けているようです。私の試みの全てにおいて、私は、以下に示すように「エスケープをエスケープ」することはできませんされました:Regexの一重引用符をエスケープすると、repl.itに余分なバックスラッシュが作成されます
String.prototype.escapeQuote = function() {
const regex = /\'/g;
const str = `${this}`;
const subst = `\\'`;
const result = str.replace(regex, subst);
return result;
};
var str = "this method doesn't work...";
str.escapeQuote();
私はこのコードを実行すると、私は出力があることを期待:
this method doesn\'t work...
しかし、私はrepl.it上でそれを実行したときに私が得る出力は次のようになります。
\'
へ
subst
またはちょうど
'
のいずれか(おそらくそれは言うまでもない)は動作しませんを結合
'this method doesn\\\'t work...'
- いずれかの方法で、結果は次のとおりです。
'this method doesn\'t work...'
私は正規表現にかなりあいまいですが、改善しようと、私はあなたが提供することができます任意の助けに感謝したい - と、そのことについては、私が見逃している可能性のある関連の答え。
私はあなたが実際に達成したいものをクリアしていませんよ。それぞれのアポストロフィに3つのスラッシュ文字を付けようとしていますか? – Quentin
いいえ\ –
の文字列を返そうとしています。あなたは、stackoverflowのコメント構文でエスケープを変更しました。文字の名前を使って説明してください。 – Quentin