ASP,VB,JAVASCRIPT 拼HTML時多層單引號雙引號嵌套用法,實用(轉載)

來源:互聯網
上載者:User

標籤:

 

s、html中的單引號雙引號及其轉義使用(轉) 收藏 
  在js中對相關字元做判斷或取值,或者拼HTML賦值的時候很多情況下都會用到這些,也是我剛剛遇到的問題,通過參考下面的這篇文章,一切都解決了,摘抄下來做個筆記!呵呵...

------

在一個網頁中的按鈕,寫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的。兩個雙引號的做法是 vbScript的,\"這種做法則是javascript的,而HTML的,則是用&quot;,此外還可以使用:"、&#x27。

下面列出各種表達方法:
<html>
<body>
<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="兩個單引號-錯誤" 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‘);" /><br />
<input value="外單引號雙引號-OK" 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 u o t ;)-OK" type="button" onclick="alert(&quot;OK&quot;);" /><br />
<input value="HTML逸出字元&apos;(& a p o s ;)-IE錯誤" type="button" onclick="alert(&apos;OK&apos;);" /><br />

<input value="其它\\-錯誤" type="button" onclick="alert(\\"OK\\");" /><br />
<input value="其它\& # 3 4 ;-錯誤" type="button" onclick="alert(\"OK\");" /><br />
</body>
</html>

 

 

 

1,雙引號""  ASP中處在雙引號中的可以是任意的字元、字串,HTML代碼。  比如  <%response.write ("cnbruce here")%><hr>  <%response.write ("<b>cnbruce here</b>")%>  產生的頁面效果分別是:預設文字和加粗文字“cnbruce here”  下面再想想,如果我要在輸出的頁面文字上加一顏色效果該怎麼辦?  1,一般文字顏色這樣寫:<font color="#0000ff">cnbruce</font>  2,response.write寫法是這樣的:response.write("輸入顯示的內容")  3,如果要將上面超連結代碼放到response.write中,有沒有發現write方法中  的雙引號和color中的雙引號形成嵌套效果,  勢必形成response.write("<font color="#0000ff">cnbruce</font>")  4,調試結果不容樂觀,因為color的前引號和write的前引號形成匹配,內容  為<font color=;同樣color的後引號也就和write的後引號匹配了,內容為:  >cnbruce</font>。最終結果是:中間的 #0000ff 被孤單了。  5,所以為了結果正確,你可以將 #0000ff 當成字串放在雙引號裡面,然後該字  符串與前字串<font color=和後字串>cnbruce</font>中間的串連就採用&號  最後結果如下:  <%  response.write("<font color=" & "#0000ff" & ">cnbruce</font>")  %>  2,單引號‘‘  正如學習語文課一樣,繼續放在雙引號中的引號可以採用單引號。  那麼上面一條語句response.write("<font color="#0000ff">cnbruce</font>")中的  #0000ff就可以將其雙引號變為單引號:  response.write("<font color=‘#0000ff‘>cnbruce</font>"),  這樣執行同樣正確。  3,串連字元&號  ASP中&號的主要作用是用來串連的,包括:字串-字串、字串-變數、變數-變數等混合串連。  比如下面一例題:  <%  mycolor="#0000ff"  response.write ("<font color=‘ "&mycolor&" ‘>" & "cnbruce" & "</font>")  %>  其中極需要注意的是:color的單引號中又採用了雙引號~!你也許會糊了,慢慢看。  1,現在是自己定義了一個變數mycolor,按照原則,變數放在response.write裡面是不  需要加雙引號的,因為加了雙引就表示是字串,而非變數啊。  2,所以response.write如果要輸出變數可以直接這樣寫:response.write(mycolor)  3,但是,現在。我們的變數一定要是放在雙引號中的(比如上面程式是放在單引中),  那具體的response.write又該如何書寫呢?  4,關鍵寫法:將ASP中的變數繼續添加左右的"&包括,就可以放到response.write的引號中了,效果即為:response.write(" "&mycolor&" ")  5,分析response.write(" "&mycolor&" "),其實還就是前一Null 字元串聯接mycolor變數再串連後一字串嘛。  6,所以,現在對於上方的ASP整個例題應該有所領悟了吧。  繼續強化加深  <%  mycolor="#0000ff"  response.write ("<font color=‘ "&mycolor&" ‘>" & mycolor & "</font>")  %>  這個裡面就包含了字串,變數以及變數在引號中的使用。相信你也就能夠明白了吧。  最後,你還可以進行HTML和ASP的混合使用。  <%mycolor="#0000ff"%>  <font color=<%=mycolor%>><%=mycolor%></td>  有很重要的一點還是沒有講,雙引號的轉義問題。  vbscript中如果需要在字串裡使用雙引號,需要轉義,就如同javascript,c等語言中的轉義意思一樣  在vbscript中,雙引號的轉義方法是書寫兩個雙引號,即"",比如  Response.write "I say ""you are so clever!"""  輸出的結果就是:I say "you are so clever!"  使用轉義的目的有兩個:  1、當然是需要用到雙引號的地方必須用雙引號  2、不建議輸出html代碼時,屬性值部分不加引號或者只加單引號(為什嗎?因為W3C的標準是必須加雙引號的)  也即如此  Response.write "<a href="""+rs("link")+""" target=""_blank"">"+rs("title")+"</a>"  紅色引號部分為雙引號轉義輸出,藍色引號部分是字串定義邊界  或許你會覺得這樣寫不利於閱讀,但習慣就好,而且最好就習慣這樣寫  另外建議&號用要用的謹慎,因為&號在做串連時,可以把數字類型和邏輯類型自動轉換成字串類型,即  b=true  n=1  s="abcd"  Response.Write s&n&b  輸出結果時 abcd1True  這樣並不好,養成這樣的壞習慣後,在操作sql語句,有時會出現令你頭疼的無法預料的錯誤,所以,如果要使用&號做為串連,必須顯式的把數字類型和布爾類型轉換成字元類型,即用Cstr函數。如此,&的功能和+在做為字串串連時的功能就一致了。建議是千萬別貪圖小便宜來。程式員必須嚴謹。

ASP,VB,JAVASCRIPT 拼HTML時多層單引號雙引號嵌套用法,實用(轉載)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.