2016-07-29 10 views
-1

のClassic ASP変数を使用してエスケープ引用符を使用するにはどうすればよいですか? ASP変数はDBから取得されます。Javascript変数の引用符をエスケープして古典的なASP

var goala = "<%=(goal_a)%>"; 

をしかし、明らかにそれが表示されます予期しない識別子を持つ関数を壊し

var goala = "<p>testing "quotation" marks</p>"; 

ページのロード時、

として:私は使用しています。

編集:私はjQueryを使用していますが、「どうすればこれをjQueryを使用して実現できますか?」と申し訳ありませんでした。

アイデア?ありがとう

+0

あなたはどの言語をサーバー側で使用していますか? VBScriptまたはJScript? –

+0

* "jQueryの使用" *できません。 *サーバーサイド*を修正する必要があります。 –

+0

申し訳ありませんが、jQueryを使用しているソリューションではなく、jQueryを使用していたという事実を参照していました。 – Finn

答えて

2

「jQueryを使用する」方法を尋ねました。できません。 jQueryが関与するまでには、コードはすでに無効になっています。これを修正する必要がありますサーバー側

従来のASPでは、一般的なケースでこれを解決するのに役立つ組み込み関数はありません。

"文字以上を処理する必要があることに注意してください。 JavaScript文字列リテラルにテキストを正常に出力するには、使用する引用符("または')、改行、その他の制御文字などを処理する必要があります。

VBScriptをサーバー側の言語は、あなたが交換する必要がある文字置き換えるためにReplaceを使用することができます。

var goala = "<%=Replace(goal_a, """", "\""")%>"; 

を再度し、しかし、あなたが扱うと、それを介して動作するために必要なもののリストを作成する必要があります。例えば

var goala = "<%=Replace(Replace(Replace(goal_a, """", "\"""), Chr(13), "\n"), Chr(10), "\r")%>"; 

...など。

サーバーサイド言語がJScriptの場合は、ほぼ同じ方法でreplaceを使用することができますように

var goala = "<%=goal_a.replace(/"/g, "\\\").replace(/\r/g, "\\r").replace(/\n/g, "\n")%>"; 

...と。 gフラグを持つ正規表現を使用して、すべての文字列を置き換えるようにしてください(最初の引数に文字列を使用すると、最初の一致が置換されます)。

+0

ありがとう、非常に簡潔です。置換を使用することを指している必要があります。他の文字をうまく扱うWYSIWYG、改行などに使用します。 – Finn

関連する問題