1

stringJavaScriptコードにリテラルを挿入するために自動的にフォーマットする方法はありますか?

あなたのページにこれがあるとしましょう:

<script type="text/javascript">
    var strvar = <asp:Literal runat="server" id="ltrStrvar"></asp:Literal>;
</script>

そして、サーバー側のコードで:

protected void Page_Load(object sender, EventArgs e) {
    ltrStrvar.Text = "hello \"world\"";
}

文字列を自動的にエスケープし、エラーのない JavaScript への挿入のために引用符で囲む方法はありTextますか? 手動で行う方法は知っていますが、よりエレガントなソリューションを探していました。

4

2 に答える 2

2

コントロールを内部で使用し、引用符がない場合は引用符で囲むカスタムLiteralWithQuotationMarksユーザーコントロールを作成できます。Literal

于 2012-11-07T16:08:09.017 に答える
0

あなたはこのようなことをすることができます:

public string sanitizeJavascriptString(string dirtyInput)
{
    return dirtyInput.Replace("\\", "\\\\")
        .Replace("\"", "\\\"")
        .Replace("'","\\'");
}

既存のエスケープ機能があるかどうかはわかりませんが、疑わしいです。また、他に何をエスケープする必要があるかは100%わかりませんが、他のキャラクターが何であるかを知っていれば、他のキャラクターを追加できると思います。

于 2012-11-07T16:08:12.793 に答える