Javascript 高階篇 正規表示式

2021-09-07 10:34:07 字數 2684 閱讀 1700

淺拷貝:拷貝就是複製,就相當於把乙個物件中的所有的內容,複製乙份給另乙個物件,直接複製,或者說,就是把乙個物件的位址給了另乙個物件,他們指向相同,兩個物件之間有共同的屬性或者方法,都可以使用

var obj1=;

//另乙個物件

var obj2={};

//寫乙個函式,作用:把乙個物件的屬性複製到另乙個物件中,淺拷貝

//把a物件中的所有的屬性複製到物件b中

function extend(a,b)

}extend(obj1,obj2);

console.dir(obj2);//開始的時候這個物件是空物件

console.dir(obj1);//有屬性

深拷貝:拷貝還是複製,深:把乙個物件中所有的屬性或者方法,乙個乙個的找到.並且在另乙個物件中開闢相應的空間,乙個乙個的儲存到另乙個物件中

var obj1=

};var obj2={};//空物件

//通過函式實現,把物件a中的所有的資料深拷貝到物件b中

function extend(a,b) else if(item instanceof object);

//再次呼叫這個函式,把a物件中的屬性物件的值乙個乙個的複製到b物件的這個屬性物件中

extend(item,b[key]);

}else

}}extend(obj1,obj2);

console.dir(obj1);

console.dir(obj2);

元字元:

* . 表示的是:除了\n以外的任意的乙個字元 「fdsfs238」

* 表示的是:範圍, [0-9] 表示的是0到9之間的任意的乙個數字, 「789」 [0-9]

* [1-7] 表示的是1到7之間的任意的乙個數字

* [a-z] 表示的是:所有的小寫的字母中的任意的乙個

* [a-z] 表示的是:所有的大寫的字母中的任意的乙個

* [a-za-z] 表示的是:所有的字母的任意的乙個

* [0-9a-za-z] 表示的是: 所有的數字或者是字母中的乙個

* 另乙個函式: 把正規表示式中元字元的意義乾掉 [.] 就是乙個.

* | 或者 [0-9]|[a-z] 表示的是要麼是乙個數字,要麼是乙個小寫的字母

* () 分組 提公升優先順序 [0-9]|([a-z])|[a-z]

* ([0-9])([1-5])([a-z]) 三組, 從最左邊開始計算

* (()(()))

* 都是元字元,但是也可以叫限定符,下面的這些

* * 表示的是:前面的表示式出現了0次到多次

* [a-z][0-9]* 小寫字母中的任意乙個 後面是要麼是沒有數字的,要麼是多個數字的

* "fdsfs3223323" [a-z][0-9]*

** + 表示的是:前面的表示式出現了1次到多次

* [a-z][9]+ 小寫字母乙個後面最少乙個9,或者多個9

* "fesfewww9fefds"

* ? 表示的是:前面的表示式出現了0次到1次,最少是0次,最多1次 ,另乙個含義:阻止貪婪模式

* [4][a-z]? "1231234ij"

* 限定符:限定前面的表示式出現的次數

* {} 更加的明確前面的表示式出現的次數

* 表示的是前面的表示式出現了0次到多次,和 *一樣的

* 表示的是前面的表示式出現了1次到多次,和 +一樣的

* 表示的是前面的表示式出現了0次到1次,和 ?一樣的

* 表示的是前面的表示式出現了5次到10次

* 前面的表示式出現了4次

* 錯誤的*****===不能這麼寫

* ^ 表示的是以什麼開始,或者是取非(取反) ^[0-9] 以數字開頭

* ^[a-z] 以小寫字母開始

* [^0-9] 取反,非數字

* [^a-z] 非小寫字母

* [^0-9a-za-z_]

* $ 表示的是以什麼結束 [0-9][a-z]$ 必須以小寫字母結束

* ^[0-9][a-z] 相當於是嚴格模式 "3f2432e" "4f"

* \d 數字中的任意乙個,

* \d 非數字中的乙個

* \s 空白符中的乙個

* \s 非空白符

* \w 非特殊符號

* \w 特殊符號

* \b 單詞的邊界

建立正規表示式物件

//物件建立完畢---

var reg=new regexp(/\d/);

//呼叫方法驗證字串是否匹配

var flag=reg.test("我的**是10086");

console.log(flag);

//字面量的方式建立正規表示式物件

var reg=/\d/;

var flag=reg.test("小蘇的幸運數字:888");

console.log(flag);

識別正規表示式是否匹配

console.log(/\d/.test(「998」));

Javascript 高階篇 函式

閉包的概念 函式a中,有乙個函式b,函式b中可以訪問函式a中定義的變數或者是資料,此時形成了閉包 這句話暫時不嚴謹 閉包的模式 函式模式的閉包,物件模式的閉包 閉包的作用 快取資料,延長作用域鏈 閉包的優點和缺點 快取資料 函式模式的閉包 在乙個函式中有乙個函式 function f1 函式呼叫 f...

JavaScript高階 正規表示式

前言 這篇部落格是我對正規表示式一些基礎知識的整理。基礎部分 1.1 什麼是正規表示式 是一種特殊的字串模式 作用是匹配字串 如同用模具做產品,正規表示式就是模具,具體的字串就是產品 定義一種規則去匹配復合規則的字串 1.2 元字元介紹 會匹配行或者字串的開頭,有時會匹配整個文件的起始位置 匹配字串...

JavaScript高階之正規表示式

在js中使用正規表示式的目的是使用某種規則匹配字串或子字串 與建立陣列相同,建立regexp物件有兩種方法,一種是字面量,一種是使用建構函式。使用字面量 var reg d g 用兩個斜槓包裹匹配規則 使用建構函式 var reg new regexp d g 第乙個引數是匹配規則,同時需要對 進行...