1. 程式人生 > >關於JS中的轉義字元

關於JS中的轉義字元

JS裡面的單引號和雙引號可以同時使用,但是要遵循一定的準則。

最外面用了雙引號了,那麼裡面就不能再用雙引號了,因為引號是成雙對的,瀏覽器讀到一個雙引號後,到第2個雙引號時才算結束;同理,瀏覽器讀到一個單引號後,必須要讀到第二個單引號才算結束,

不管是單引號還是雙引號,裡面都可以套相反的引號,但是不可以雙引號裡面套單引號,這個單引號再套雙引號,這是不行的。

如果在引號裡面使用相同的引號,需要用 \ 轉義。

單引號轉義為\'

單引號轉義為\"

單引號和雙引號之間的字串可以相加

'af'+"bvvv"+'dd'

輸出 "afbvvvdd"

還有一種情況,,這裡的單引號也是字串的一部分

"<div class='con"+"tent'></div>"

輸出 "<div class='content'></div>"

從程式碼編譯的角度說的話,單引號在JS中被瀏覽器(IE,Chrome,Safari)編譯的速度更快(在FireFox中雙引號更快)。

來看一些案例

首先,單引號和雙引號在各自單獨用時是木有什麼區別的,都可以,比如:

var a="你好";//雙引號,變數a的內容是字串  你好

var b='你好';//單引號,變數b的內容是字串  你好

console.info(a===b);//輸出true,它們本質都是一樣的字串

其次,單引號和雙引號混合使用時,這時候要特別注意了,這種情況一般出現在js拼接字串裡面,或者html元素的屬性裡面,就以JS為例吧,都是一樣的規則:單引號和雙引號必須成雙成對的出現,可以單引號在外面,也可以雙引號在外面:

var a="'你好'";//這裡變數a的內容就是字串'你好',這裡的單引號也是字串的一部分

var b='"你好"';//這裡變數b的內容就是字串"你好",這裡的雙引號也是字串的一部分

console.info(a===b);//輸出false,它們不是一樣的字串

接下來來個稍微複雜點的,我們來看下字串拼接:

var _html="<div class='content'></div>";/*這裡是最外面用了雙引號了,那麼裡面就不能再用雙引號了,因為引號是成雙對的,瀏覽器讀到一個雙引號後,到第2個雙引號時才算結束;同理,瀏覽器讀到一個單引號後,必須要讀到第二個才算結束*/

//上面的程式碼也可以寫作:_html='<div class="content"></div>';

//如果你只想用一種引號的話,你級需要對裡面的引號進行**轉義處理**,告訴瀏覽器裡面的引號是一個字串,而不是引號結束符,比如:

_html='<div class=\'content\'></div>';

再來個拼接字串的:

var data={name:"小明",age:18};

var _html="<div class='info'>我的名字叫"+data.name+",我今年"+data.age+"歲了<div>"

console.info(_html);//我的名字叫小明,我今年18歲了

//很明顯了,按照之前說的,引號在讀到首個雙引號字串的時候,把它當做這個變數的

//內容開始處理,然後到第二個雙引號那裡結束,即: "<div class='info'>我的名字叫"

/*然後通過加號拼接變數 data.name,  拼接好了後繼續用加號拼接字串 ",我今年"

以此類推。。。 

一個特別複雜的例子

想要輸出這段HTML

<template v-for="aodo in aodos">
      <li class="mui-table-view-cell" v-bind:fundcodeli="aodo.assetCode">
          <span class="column-a" v-text="aodo.assetName.substring(0,6)"></span>
          <span class="column-b" v-text="aodo.setupDate.substring(0,4)+'-'+aodo.setupDate.substring(4,6)+'-'+aodo.setupDate.substring(6,8)"></span>
          <span class="column-c" v-text="aodo.investType.substring(0, aodo.investType.length - 2)"></span>
          <span class="column-d mui-icon mui-icon-closeempty"></span>
    </li>
</template>

JS裡面必須這樣寫:

var str="<template v-for='aodo in aodos'><li class='mui-table-view-cell' v-bind:fundcodeli='aodo.assetCode'><span class='column-a' v-text='aodo.assetName.substring(0,6)'></span><span class='column-b' v-text='aodo.setupDate.substring(0,4)"+'+"-"+'+"aodo.setupDate.substring(4,6)"+'+"-"+'+"aodo.setupDate.substring(6,8)'></span><span class='column-c' v-text='aodo.investType.substring(0, aodo.investType.length - 2)'></span><span class='column-d mui-icon mui-icon-closeempty'></span></li></template>";
fundListUl.innerHTML = str;

**總結下**:引號(同類型的引號,單引號和雙引號是不同型別)是成雙對的,在讀第一個引號時開始,讀到第二個結束,遇到第三個又開始,第四個又結束。。。;

不同型別引號之間可以巢狀,最多2層(當然通過轉義可以繼續往下套,但是因為可讀性太差,不要這樣做);

*/

相關推薦

js替換字串轉義字元"\"的方法

查詢替換功能非常強大,但模板難記複雜。 JavaScript中String物件的match()、replace()這2個方法都要使用正則表示式的模板。當模板內容與字串不相匹配時,match()返回null,replace()返回原字串。 模板的用法是關鍵。flag:

160311、mybatis sql語句轉義字元

 問題: 在mapper  ***.xml中的sql語句中,不能直接用大於號、小於號要用轉義字元 解決方法:   1、轉義字串 小於號    <    &lt; 大於號    >

Android轉義字元

下面是android中需要轉義的表: 字元 ASCII碼 轉義字元 “ &#34; &quot; & &#38; &

android xml轉義字元的使用

如果一段文字需要多個TextView拼貼,比如:“我叫XXX,今年XX歲了,身高X.X米”; 可以考慮引用string.xml檔案中預定義的字串拼接實現. 例子: 1.在string.xml中先定義好格式 <string name="hello">St

《C語言及程式設計》資料——C語言轉義字元

下面是C語言中的轉義字元及其意義:轉義字元意義ASCII碼值(十進位制)\a響鈴(BEL)007\b退格(BS) ,將當前位置移到前一列008\f換頁(FF),將當前位置移到下頁開頭012\n換行(LF

Java轉義字元反斜槓 \ 的代替方法 | repalceAll 內涵解析

一、需求 現有一個字串str String str = "{\\\"name\\\":\\\"spy\\\",\\\"id\\\\":\\\"123456\\\"}"; System.out.println("str = " + str); 在控制檯的

Java轉義字元

JAVA中轉義字元:  1.八進位制轉義序列:\ + 1到3位5數字;範圍'\000'~'\377'        \0:空字元  2.Unicode轉義字元:\u + 四個十六進位制數字;0~65535       \u0000:空字元  3.特殊字元:就3個        \":雙引號       \'

java轉義字元(回車\r\n)的替換 反轉義

原出處:http://www.51itong.net/java-string-rn-209.html 有一個的字串,列印的結果如下: hello \r\n world 現在要把其中的 \r\n 替換為正常的回車,再次的列印即為: hello world 可以用

Java| Java轉義字元和路徑符

在java的實際開發中,經常會遇填寫一個檔案的相對路徑或者是絕對路徑的問題,對於初學者來說,經常犯難的是到底是用\ 還是用/的問題,本文將徹底解決這個問題的困擾. 先來看要下路徑符號在windows系統和再linux系統寫的顯示使用的區別: Windows下

關於JS轉義字元

JS裡面的單引號和雙引號可以同時使用,但是要遵循一定的準則。最外面用了雙引號了,那麼裡面就不能再用雙引號了,因為引號是成雙對的,瀏覽器讀到一個雙引號後,到第2個雙引號時才算結束;同理,瀏覽器讀到一個單引號後,必須要讀到第二個單引號才算結束,不管是單引號還是雙引號,裡面都可以套相反的引號,但是不可以雙引號裡面套

js,“\”轉義字元的使用

(1)針對雙引號“”的使用:html= "<a href=\"javascript:void(0)\" onclick=\"getSubContent('" +(choices[next])[0]+ "','" +(choices[next])[1]+ "','" +(

xml檔案特殊字元轉義

在使用mybatis/ibatis寫sql時總是忘記特殊轉義表示,在此記錄 左邊為xml特殊符號,右邊是轉義 <     &lt;>     &gt;&   &

Android json資料轉義字元

對於Android來說 也許伺服器寫的資料 並不如意,但是我們要逐個擊破,例如這個資料 {     "code": "200",     "message": "OK",     "result": {    

C語言轉義字元

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Python 轉義字元沒有這個 「\e」 !

問題來源於技術交流群裡: 常見的轉義字元 \n、\t 之類的我們都知道什麼意思,但是這個 \e 是什麼意思呢? 抱著一股鑽研的精神,我搜了一把。 結果,所有的頁面裡都是隻有一句簡單的 \e 代表轉義。 然後呢? 不要舉個例子嗎? 他們不給例

Markdown特殊字元轉義字元

上次在用Markdown記筆記時,當正文中寫到<PROJECT>_<PATH>_<FILE>_H_時,<>裡的內容顯示顯示不出來,就算用' '也顯示不出來。後想起Markdown支援html語法,這樣的寫法(<>或<\>)與html語法衝

JS字元問題 二進位制/十進位制/十六進位制及ASCII碼之間的轉換

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

thymeleaf onclick動態傳參用到轉義字元

<a href="javascript:void(0)" th:onclick="'javascript:del(\''+${product.id}+'\')'">刪除</a>     th:onclick="'javascript:del(\'&nb

js 判斷一個字元在字串出現次數

思路:利用indexOf函式來判斷這個字元在字串中是否存在,為-1則存在,否則繼續  //檢測一個字元在字串中出現次數,引數字串,一個字元,返回字串出現的次數 function strCharPosition(str, char) { var pos; va

HTML轉義字元防止js程式碼注入攻擊

什麼是js注入攻擊 有的時候頁面中會有一個輸入框,使用者輸入內容後會顯示在頁面中,類似於網頁聊天應用。如果使用者輸入了一段js指令碼,比例:,頁面會彈出一個對話方塊,或者輸入的指令碼中有改變頁面js變數的程式碼則會時程式異常或者達到跳過某種驗證的目的 什麼是ht