如何解决JavaScript函数参数中的“ \\\\”是什么意思?
| 我被要求记录一些代码。一些javascript函数传递参数,例如onclick=\'showhide(<%#String.Format(\"\\\"#customer{0}\\\"\",Container.DataItemIndex) %>);\'
代码中\“ \\\”的目的是什么?
他们是某些特殊的转义字符吗?如果删除它们,代码会失败吗?解决方法
它们用“转义”引号引起来,因此可以将它们包含在字符串中。否则,它们将与字符串的开始/结束引号引起混淆。
http://en.wikipedia.org/wiki/Escape_character,这看起来不像(纯)JavaScript,而是像其他一些产生JavaScript代码的语言(可能是ASP.NET):
假设“ 1”是语言代码,可将包含的语句的结果插入文本,这意味着
String.Format(\"\\\"#customer{0}\\\"\",Container.DataItemIndex)
将被写在函数调用的右括号和右括号之间。
这意味着转义字符“ 3”在此处不在JavaScript中使用,而是在宿主语言(可能是C#或VB.NET)中使用。含义可能与JavaScript中的相同,不过::它转义了双引号,以使其可以在字符串文字中表示。,代码中\“ \\\”的目的是什么?
在我看来就像是转义序列。假设这是C#代码,则代码中的字符串为:
\"\\\"#customer{0}\\\"\"
编译器解释为:
\"#customer{0}\"
(这包括双引号)
当这是response.write时,输出将变为:
onclick=\'showhide(\"#customer_1234\");\'
,是的,它是一个转义字符。
在这种情况下,它转义了\“字符。,这是上面代码中使用的转义序列。
用字符串\\\"
编写时,等效于\"
。即
<%#String.Format(\"\\\"#customer{0}\\\"\",Container.DataItemIndex) %>
如果DataItemIndex
是9
将会呈现出类似的结果
\"#customer9\"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。