1. 程式人生 > >html、JavaScript、JSON中單雙引號使用及巢狀

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" 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"}