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

HTML与JS

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

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

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

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

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

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

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

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

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

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

<input value="HTML 转义字符 "(& # 3 4;)-OK" type="button" οnclick="alert("OK");"/><br />
<input value="HTML
转义字符 '(& # 3 9;)-OK" type="button" οnclick="alert('OK');"/><br />
<input value="HTML
转义字符 "(& # x 2 2;)-OK" type="button" οnclick="alert('OK');"/><br />
<input value="HTML
转义字符 '(& # x 2 7;)-OK" type="button" οnclick="alert('OK');"/><br />
<input value="HTML
转义字符 &quot;(& q uo t ;)-OK" type="button"οnclick="alert(&quot;OK&quot;);" /><br />
<input value="HTML
转义字符 &apos;(& a po s ;)-IE 错误 "type="button" οnclick="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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值