html、JavaScript、JSON中单双引号使用及嵌套

来源:互联网 发布:快速排序算法举例说明 编辑:程序博客网 时间:2024/05/18 09:26

HTML与JS

一般 HTML 习惯是属性都用双引号。那么当遇到 js 和 php 里要用 HTML string 的时候,就是这样:
// jsvar str = '<div class="zu-global-notify" id="zh-global-message">';

在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input value="Test" type="button" onclick="alert(""OK"");" />

IE提示出错后,再漫不经心地改为:
<input value="Test" type="button" onclick="alert(\"OK\");" />

结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:<input value="" type="button" onclick="alert('OK');" />
但为什么javascript中的转义字符\没有效果了呢?

后来找到一段正常的代码:
<input value="Test" type="button" onclick="alert(&quot;OK&quot;);" />
这时才理解,是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的

\"这种做法则是javascript的。而HTML的,则是用&quot;,此外还可以使用:"、'。

下面列出各种表达方法:(摘自点击打开链接)
<html>
<body>

<input value="外双引号内双引号-错误"type="button"onclick="alert("OK");" /><br />
<inputvalue="\+双引号-错误" type="button"onclick="alert(\"OK\");" /><br />
<inputvalue="其它\\-错误" type="button"onclick="alert(\\"OK\\");" /><br />
<inputvalue="其它\& # 3 4 ;-错误" type="button"onclick="alert(\"OK\");" /><br />
<input value="
外双引号内单引号-OK" type="button"onclick="alert('OK');" /><br />

<input value="外单引号内单引号-错误" type="button"onclick='alert('OK');' /><br />
<input value="
外单引号内双引号-OK" type="button"onclick='alert("OK");' /><br />
<input value="\+
单引号-错误" type="button"onclick="alert(\'OK\');" /><br />

<input value="两个双引号-错误" type="button"onclick="alert(""OK"");" /><br />
<input value="
两个单引号-错误" type="button"onclick="alert(''OK'');" /><br />
<input value="
外部不使用引号-OK" type="button"onclick=alert('OK');alert("OK"); /><br />

<input value="HTML转义字符"(& # 3 4;)-OK" type="button" onclick="alert("OK");"/><br />
<input value="HTML
转义字符'(& # 3 9;)-OK" type="button" onclick="alert('OK');"/><br />
<input value="HTML
转义字符"(& # x 2 2;)-OK" type="button" onclick="alert('OK');"/><br />
<input value="HTML
转义字符'(& # x 2 7;)-OK" type="button" onclick="alert('OK');"/><br />
<input value="HTML
转义字符&quot;(& q uo t ;)-OK" type="button"onclick="alert(&quot;OK&quot;);" /><br />
<input value="HTML
转义字符&apos;(& a po s ;)-IE错误"type="button" onclick="alert(&apos;OK&apos;);" /><br/>

</body>
</html>


JSON

JSON中的键值对,JSON需要遵循的两个原则:(因为很多语言只能解析双引号的格式,为了接口通用性,必须使用双引号来包围key和value)

  • 字符串必须使用双引号,字符串字面量如'str'是无效的。
  • 属性键也必须使用双引号。
JSON.parse(text,reviveer?)即系文本格式的JSON数据,返回相应的值,需要用单引号嵌套双引号的字符串.下面>开头的为输入,下yihang  
>JSON.parse("'String'")SyntaxError:Unexpected token ILLEGAL>JSON.parse('"String"')'String'>JSON.parse('{"hello":123,"world":456}'){hello:123,world:456}>JSON.parse('{"hello":"123","world":"456"}'){hello:"123",world:"456"}


1 0
原创粉丝点击