//正規表示式// ^[a-za-z0-9]+$
//1.正則定界符 / (根據不同的語言略有不同)
var zz = /a/; //這是乙個正規表示式 / 為正則定界符
console.log(zz ,typeof zz);
//2.原子
/* 1.所有可見字元都是原子,abcd
2.所有不可見字元也是原子 \n \r \t
3.表示所有數字的原子 \d [0-9任意乙個字元]
4.表示所有非數字的原子 \d
5.表示能夠當作變數使用的原子 \w [0-9a-za-z任意乙個字元]
6.表示不能夠當作變數使用的原子 \w [除了0-9a-za-z任意乙個字元]
7.所有不可見字元也是原子 \s [任意乙個不可見字元]
8.所有可見字元也是原子 \s [任意乙個可見字元]
*///原則:正規表示式至少包含乙個原子!
//3.元字元:用於修飾原子的符號
//1. 原子列表:自定義原子範圍 [表示列表中任意乙個字元] [0123456789] = \d
//2.[^]排除列表:自定義原子範圍 [表示列表中任意乙個字元]
//3.+ 1個以上的指定原子
//4.* 0個以上的指定原子
//5.? 0個或者1個
//6. 指定原子最少m個最多n個
//7. 指定原子最少m個 多了不管
//8. 指定原子必須m個
//9.^ 限制內容必須在整個字串的開頭位置 開頭必須是你寫的內容的樣子
//10.$ 限制內容必須在整個字串的結束位置 結束必須是你寫的內容的樣子
//11.. (原子) 表示任意乙個字元 除了\n
//12.| 唯一乙個邏輯運算 (****)
//13.\b 詞邊界 除了數字和字母 (能夠當作英文單詞的分割符號) 位置限定
//14.\b 非詞邊界 數字和字母 (不能夠當作英文單詞的分割符號) 位置限定
//i ighore 忽略大小寫//g global 全域性匹配
//m multiline 多行模式
var str3 = '我今天完了158個遊戲,走了9999步,你打擾我21231次!';
var str4 = 'www.geeeoooooggglllllleee.com';
var result4 = str3.match(/\d+/g);
var result5 = str4.match(/geog+l*e*/g);
console.log(result4);
console.log(result5);
// var str2 = '10士9貧湊得8兩7錢6分5毫4釐況且3心2意1等下流'; //取出所有奇數
// var result2 = str2.match(/[13579]/g);
// var result3 = str2.match(/[^02468]/g);
// console.log(result2);
// console.log(result3);
// var str = '3心2意 1等下流 -=+\n*&ghfcbj';
// var result = str.match(/3/g); //g 等於 global
// var number = str.match(/\d/g); // 獲取所有數字字元
// var str = str.match(/\d/g); //獲取非數字的所有字元
// var glo1 = str.match(/\w/g); //獲取0-9a-za-z的所有字元
// var glo2 = str.match(/\w/g); //獲取0-9a-za-z的所有字元
// var steam1 = str.match(/\s/g); //獲取不可見的所有字元 空格 tab
// var steam2 = str.match(/\s/g); //獲取可見的所有字元 除了空格 tab
// console.log(result);
// console.log(number);
// console.log(str);
// console.log(glo1);
// console.log(glo2);
// console.log(steam1);
// console.log(steam2);
//match函式() 進行字串正則匹配
// var str = 'give you color see see';
// var result = str.match(/color/);
// console.log(result);
備忘錄模式
備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...
備忘錄模式
先從物件導向的三大特徵之一封裝說起。物件導向的封裝簡單點說就是把狀態 資料 和行為 操作這些資料的方法 放到一起,構成乙個單元,通常叫做類。乙個物件的行為是事先確定好的 靜態 一些指令碼,如果物件的狀態相同,物件看起來就是一樣的。所以當我們需要把乙個物件的某一時刻儲存起來,那麼只需要儲存它在那個時刻...
備忘錄模式
面臨問題 物件狀態的變化無端,如何回溯恢復物件在某個點的狀態?在軟體構建過程中,某些物件的狀態在轉換過程中,可能由於某種需要,要求程式能夠回溯到物件之前處於某個點時的狀態。如果使用一些公用介面來讓其他物件得到物件的狀態,便會暴露物件的細節實現。如何實現物件狀態的良好儲存與恢復?但同時又不會因此而破壞...