我在使用具有转义符号的字符串时,在 JavaScript 中使用它们时遇到了一个问题。
在视图顶部,我这样初始化变量:
@{ var lol = "hello \"mister sir\" I am quotes"; }
在JavaScript中,我尝试了不同的变体。为了测试目的,我编写了一个小函数:
$selector = $('#some-button');
function test(str) {
$selector.html(str);
alert(str);
}
这里是我的尝试:
javascript escaping. It works fine either in alert, or in html content.
test("hello \"mister sir\" I am quotes");
HtmlAttributeEncode or HtmlEncode. They do not work in all cases. It displays
hello "mister sir" i am quotes
in alert andhello "mister sir" i am quotes
in html contenttest("@HttpUtility.HtmlAttributeEncode(lol)"); test("@HttpUtility.HtmlEncode(lol)");
default c# or JavaScriptStringEncode. They do not work in alerts. It displays
hello "mister sir" i am quotes
in alerts.test("@Ajax.JavaScriptStringEncode(lol)"); test("@lol"); test("@HttpUtility.JavaScriptStringEncode(lol)");
Html.Raw(). Not works at all. It breaks mark-up with unescaped double quotes.
test("@Html.Raw(lol)");
你能帮我提供一些类似于javascript变体(1)的方法吗?
json
。 - Marc Blol
中没有反斜杠,因此lol
中的字符都没有被转义。带有转义字符的字面量将如下所示:"hello \\\"mister sir\\\" I am quotes""
- Paul S.