1

有没有办法自动格式化 astring以将文字插入到 JavaScript 代码中?

假设您的页面中有这个:

<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 回答