我在C#中有一个包含错误消息的字符串。这条消息可以包含单引号或双引号,也可以同时包含双引号,但我可以任意操作字符串(以及HTML/Javascript)。
例如,可以显示以下消息(内容并不重要,只是它们可以包含单引号或双引号):
The following error has occurred: "You dun goofed."The specified path isn't valid.The following error has occurred: "I'm a goof"此字符串作为警报插入到onClick处理程序中。听起来很复杂,所以让我来展示一下我的意思:
<a onClick="alert('myContentGoesHere')">View Error</a>
我能够通过在'中用\'替换C#来显示单引号。但是,我试图类似地转义",导致了一些奇怪的反斜杠,这些反斜杠终止了onClick属性并导致无效的onClick。
到目前为止,我已经尝试将"替换为:
\"\\""\"没有骰子。我觉得我可能是从错误的角度来处理这个问题,所以如果你有一个超越字符串替换的解决方案,我会全神贯注。谢谢你能提供的任何帮助。
发布于 2015-08-20 19:59:09
要使值在JavaScript中作为字符串文本工作,您需要转义字符串分隔符和反斜杠。然后,您需要对JavaScript进行编码,以便它在HTML属性中作为一个值工作。
示例:
string code =
"<a onClick=\"" +
HttpUtility.HtmlEncode(
"alert('" +
myContentGoesHere.Replace("'", "\\'").Replace("\\", "\\\\") +
"');"
) +
"\">View Error</a>";如果字符串可以包含控制字符,则也需要替换它们。添加您需要的内容:
.Replace("\r", "\\r")
.Replace("\n", "\\n")
.Replace("\b", "\\b")
.Replace("\t", "\\t")
.Replace("\v", "\\v")
.Replace("\f", "\\f")https://stackoverflow.com/questions/32127066
复制相似问题