javascript中引號嵌套教程

<a href=" javascript:document.write(' <a href=\'www.baidu.com\'>baidu</a> ') ">a-href</a>

語句裏面的所有引號,在可以使用轉義字符的情況下,單引號和雙引號之間可以怎樣變化,有幾種表示方法?像這樣遇到引號嵌套應該怎麼套,有規律嗎?是不是一般在單引號裏面套雙引號?

當拼接JS字符串的時候,雙引號裏面一定要是單引號,單引號裏面要是雙引號。如此循環!不過全部雙引號也可以,就是雙引號裏面的雙引號需要轉義!

單引號 雙引號嵌套使用時,要注意以下幾點就可以了:

1. 單(雙)引號開始 單(雙)引號結束,配對使用

2. 單引號在前,後面是雙引號

3. 雙引號在前,單引號在後

4. 單引號在前,後面是雙引號 或者 雙引號在前,單引號在後,再跟單引號 或雙引號的,要加轉義符。

(責任編輯:麥田守望者)

 

項目開發中,接觸JS是在所難免的,但有時老是出現“未結束的字符串常量”的錯誤,並且踏破鐵鞋無覓處,焦頭爛額人鬱郁。根據自己的經驗和網絡上常見的現象,做下總結,以便日後品茗細琢。

大致分爲以下三種情況:
          ①JAVASCRIPT和JSP(或其他網頁)文件的編碼類型不一致

             現象:

             比如,你的jsp網頁用的編碼格式是utf-8 ,但是你的js文件用的編碼格式卻是gb2312。這樣文件內部特殊字符因格式不一致就會在解碼時出現亂碼,從而導致編譯器在未到達引號( "' )前提前結束,產生“未結束的字符串常量”。這種不太容易發現錯誤。

             解決:            

             如果你的js是外部引用進來的,而不是在jsp頁面上編寫的,可以在<script type=”text/javascript” src=”XXX.js” charset=”###″>
中設置charset="###"與你的jsp網頁編碼一致就可以了;如果你的js是在jsp頁面上直接編寫的,基本排除這種類型的錯誤,請往下看。

            ②在JAVASCRIPT中,字符串前後標記(如單引號或雙引號)不匹配或者嵌套錯誤
              現象:            

              這種最常見,也最容易發現錯誤。字符串中單引號( ' )或雙引號( " )前後不配對,或者在document.write()時,沒有正確輸出單引號( ' )或雙引號( " ),還有就是在單雙引號嵌套時出現錯誤。

             解決:

             讓前後引號正確配對;           

             共有兩層嵌套時,雙引號內嵌套單引號是正確的,單引號內嵌套雙引號也是正確的。

             共有三層嵌套時,最裏面一層引號不能和最外面一層相同,這樣是錯誤的,可以在最裏面一層引號前加上轉義字符“\”。

             ③傳遞的參數變量內或者jsp腳本變量中包含HTML標記語言、包含換行符或包含引號

             現象: 
              這種情況是最難發現的,容易忽略了變量內部文字原因產生的,將字符串以參數形式傳遞給一個函數或者href、action時,該字符串裏包含換行符、引號或HTML標記,造成了此錯誤。如:a.測試時使用單行數據是正常的,未出現這個錯誤;使用多行數據並使用回車鍵換行,就出現了此錯誤,因爲裏面包含換行符。b.mArray[<%=n_id%>]="<%=loopnum%><><%=n_topic%><><%=state%><><%=n_sendtime%><><%=n_content%>";看似無誤,但是<%=n_topic%>、<%=n_content%>中包含了多個單雙引號,就出現了此錯誤。

             解決: 
             對於這種情況,我的解決方法有兩個,一個是將字符串變量進行替換操作,將雙引號替換成單引號,單引號替換成“\"”,不過這樣在傳遞後讀取時還得替換成原文;第二種方法是不直接將數據以參數形式傳遞,而是先將其賦值給一個隱藏文本內,函數裏只需讀取文本中的內容即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章