JS學習筆記3

正則表達式
創(chuàng)建正則表達式的對象
①使用構(gòu)造函數(shù): var 變量 = new RegExp("正則表達式","匹配模式");這種方式正則表達式前后不需要//
②使用字面量創(chuàng)建: 也可以直接用 /正則表達式/(匹配模式) 的方式創(chuàng)建
使用typeof檢查正則對象,會返回object
第二個參數(shù)匹配模式可以是i或g ①i 忽略大小寫 ②g 表示全局匹配模式
可以使用test()檢查一個字符串是否滿足該正則表達式的規(guī)則,符合返回true,否則返回false。

  • 常用正則語法:
    使用 | 表示或者的意思
    []里的內(nèi)容也是或的關(guān)系
    [ab] == a|b
    [a-z] 任意小寫字母
    [A-Z] 任意大寫字母
    [A-z] 任意字母,中間包括幾個特殊字字符
    [0-9] 任意數(shù)字
    [^ ] 除了
    ^ 表示開頭
    $ 表示結(jié)尾
    如果在正則表達式中同時使用^ $則要求字符串必須完全符合正則表達式

  • 補充語法

          * \w
          *  - 任意字母、數(shù)字、_  [A-Za-z0-9_]
          * \W
          *  - 除了字母、數(shù)字、_  [^A-Za-z0-9_]
          * \d
          *  - 任意的數(shù)字 [0-9]
          * \D
          *  - 除了數(shù)字 [^0-9]
          * \s
          *  - 空格
          * \S
          *  - 除了空格
          * \b
          *  - 單詞邊界
          * \B
          *  - 除了單詞邊界
    
  • 量詞
    通過量詞可以設(shè)置一個內(nèi)容出現(xiàn)的次數(shù)
    量詞只對它前邊的一個內(nèi)容起作用
    {n} 正好出現(xiàn)n次
    {m,n} 出現(xiàn)m-n次
    {m,} m次以上
    + 至少一個,相當于{1,}
    * 0個或多個,相當于{0,}
    ? 0個或1個,相當于{0,1}

  • 字符串配合正則表達式使用的方法

  • split()
    * - 可以將一個字符串拆分為一個數(shù)組
    * - 方法中可以傳遞一個正則表達式作為參數(shù),這樣方法將會根據(jù)正則表達式去拆分字符串
    * - 這個方法即使不指定全局匹配,也會全都插分

  • search()
    * - 可以搜索字符串中是否含有指定內(nèi)容
    * - 如果搜索到指定內(nèi)容,則會返回第一次出現(xiàn)的索引,如果沒有搜索到返回-1
    * - 它可以接受一個正則表達式作為參數(shù),然后會根據(jù)正則表達式去檢索字符串
    * - serach()只會查找第一個,即使設(shè)置全局匹配也沒用

  • match()
    * - 可以根據(jù)正則表達式,從一個字符串中將符合條件的內(nèi)容提取出來
    * - 默認情況下我們的match只會找到第一個符合要求的內(nèi)容,找到以后就停止檢索
    * 我們可以設(shè)置正則表達式為全局匹配模式,這樣就會匹配到所有的內(nèi)容
    * 可以為一個正則表達式設(shè)置多個匹配模式,且順序無所謂
    * - match()會將匹配到的內(nèi)容封裝到一個數(shù)組中返回,即使只查詢到一個結(jié)果

  • replace()
    * - 可以將字符串中指定內(nèi)容替換為新的內(nèi)容
    * - 參數(shù):
    * 1.被替換的內(nèi)容,可以接受一個正則表達式作為參數(shù)
    * 2.新的內(nèi)容
    * - 默認只會替換第一個

DOM
文檔對象模型(document object model)
瀏覽器已經(jīng)為我們提供 文檔節(jié)點 對象這個對象是window屬性,可以在頁面中直接使用,文檔節(jié)點代表的是整個網(wǎng)頁

事件
事件就是用戶和瀏覽器之間的交互行為,比如:點擊按鈕,鼠標移動、關(guān)閉窗口。。。
可以為按鈕的對應(yīng)事件綁定處理函數(shù)的形式來響應(yīng)事件,這樣當事件被觸發(fā)時,其對應(yīng)的函數(shù)將會被調(diào)用

        btn.onclick = function(){
            alert("你還點~~~");
        };

像這種為單擊事件綁定的函數(shù),我們稱為單擊響應(yīng)函數(shù)

文檔的加載

  • 瀏覽器在加載一個頁面時,是按照自上向下的順序加載的,讀取到一行就運行一行,如果將script標簽寫到頁面的上邊,在代碼執(zhí)行時,頁面還沒有加載,頁面沒有加載DOM對象也沒有加載,會導致無法獲取到DOM對象

  • onload事件會在整個頁面加載完成之后才觸發(fā),為window綁定一個onload事件,該事件對應(yīng)的響應(yīng)函數(shù)將會在頁面加載完成之后執(zhí)行,這樣可以確保我們的代碼執(zhí)行時所有的DOM對象已經(jīng)加載完畢了

          window.onload = function(){
                 ......
          }
    

dom查詢

  • 常用方法:
    document.getElementById() 根據(jù)id獲取元素
    document.getElementsByTagName() 根據(jù)標簽名獲取元素
    document.getElementsByClassName() 根據(jù)類名獲取元素
    .innerHTML 獲取當前元素的內(nèi)容
    .childNodes 獲取當前元素的所有子節(jié)點,返回一個類數(shù)組
    .firstChild 獲取當前元素的第一個子節(jié)點
    .firstElementChild 獲取當前元素的第一個子元素
    .previousSibling .nextSibling 獲取當前元素的兄弟節(jié)點
    .nextElementSibling、.previousElementSibling 獲取當前元素的兄弟元素
    .parentNode 獲取當前元素的父節(jié)點

  • 其他方法
    document.documentElement 保存的是html根標簽
    document.all 代表頁面中所有的元素
    在document中有一個屬性body,它保存的是body的引用 var body = document.body;
    document.querySelector() 采用css選擇器語法來選擇指定元素,注意傳入的參數(shù)是字符串,只會返回一個,返回多個需要使用document.querySelectorAll()方法

appendChild() 用于向一個父節(jié)點中添加一個新的子節(jié)點
用法:父節(jié)點.appendChild(子節(jié)點);

document.createElement() 可以用于創(chuàng)建一個元素節(jié)點對象,它需要一個標簽名作為參數(shù),
將會根據(jù)該標簽名創(chuàng)建元素節(jié)點對象,并將創(chuàng)建好的對象作為返回值返回

insertBefore() 可以在指定的子節(jié)點前插入新的子節(jié)點 語法:父節(jié)點.insertBefore(新節(jié)點,舊節(jié)點);

document.createTextNode() 可以用來創(chuàng)建一個文本節(jié)點對象,
需要一個文本內(nèi)容(字符串形式)作為參數(shù),將會根據(jù)該內(nèi)容創(chuàng)建文本節(jié)點,并將新的節(jié)點返回

replaceChild() 可以使用指定的子節(jié)點替換已有的子節(jié)點 語法:父節(jié)點.replaceChild(新節(jié)點,舊節(jié)點);

removeChild() 可以刪除一個子節(jié)點 語法:父節(jié)點.removeChild(子節(jié)點);

getElementsByClassName()可以根據(jù)class屬性值獲取一組元素節(jié)點對象,但是該方法不支持IE8及以下的瀏覽器

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • js語言學習 1.基本概念: 1.js是區(qū)分大小寫的 2.標識符命名規(guī)則: 第一個字符必須是一個字母、下劃線(_)...
    NSQAQ閱讀 1,519評論 1 17
  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 3,208評論 0 9
  • 正則表達式寫起來費勁又出錯率高,代替方法之一是BeautifulSoup(另一種是使用 Xpath 神器,后續(xù)再學...
    正在輸入昵稱閱讀 1,335評論 0 4
  • DOM: offsetParent是尋找該元素第一個有定位的父元素 children直接尋找元素節(jié)點,不包括文本節(jié)...
    小澤柚沐風閱讀 116評論 0 0
  • todo:總結(jié)下實際中js的一些注意事項、表格、全選、切換、模態(tài)框等 原則: 漸進增強 平穩(wěn)退化 低耦合 JS腳本...
    flyrain閱讀 479評論 0 0

友情鏈接更多精彩內(nèi)容