天天看點

JavaScript基礎回顧知識點記錄4-正規表達式篇(介紹基本使用)

  • js 中 正規表達式使用
    • 建立正則對象和test方法使用
      /*
      			建立正規表達式的對象
      			文法: var 變量 = new RegExp("正規表達式","比對模式")  或者 var 變量 = /正規表達式/
      			比對模式:  i:忽略大小寫 。    g:全局比對模式		
      		*/
      		//var reg = new RegExp("a","i");
      		var reg = /a/i;
      		var str = "1A2d3f4g6h8";
      		
      		// 正規表達式的方法: test() : 檢查字元串是否符合正規表達式規則,符合傳回true,否則傳回false
      		console.log(reg.test(str));	//輸出true 
                 
    • 字元串和正則的相關方法
      // split() 支援正規表達式比對拆分字元串。該方法預設會走全局比對。
      		var res = str.split(/[A-z]/);
      		console.log(res);	//輸出["1", "2", "3", "4", "6", "8"]
      		
      		// search() 搜尋字元串中是否有指定内容,不能全局比對,隻能搜尋第一個符合條件的位置
      		var str1 = "hello abc hello aec";
      		var res2 = str1.search(/a[be]c/);
      		console.log(res2);	//輸出6( 第一個比對的abc的位置)
      		
      		/*
      			match()  根據正規表達式,從一個字元串中将符合條件的内容提取出來。
      			match預設隻會找到第一個符合要求的内容,需要檢索全部需要改為全局比對模式,且可以設定多個比對模式
      			比對到的内容封裝到數組中儲存
      		*/
      		var str2 = "1a2b3c4d5e6f7C";
      		var res3  = str2.match(/[A-z]/gi);	// gi表示全局比對且不區分帶小寫
      		console.log(res3);	//輸出["a", "b", "c", "d", "e", "f", "C"]
      		
      		/*
      			replace() 将字元串指定内容替換成新的内容,預設隻會替換第一個
      			第一個參數表示: 被替換的内容,可以用正規表達式
      			第二個參數表示: 新的内容(替換為""的話,就是删除比對的元素)
      		*/
      		var str3 = "1a2a3a4a5a";
      		var res4 = str3.replace("a","@@@");
      		var res5 = str3.replace(/a/gi,"@@@");
      		var res6 = str3.replace(/a/gi,"");
      		console.log(res4);	//輸出1@@@2a3a4a5a
      		console.log(res5);	//輸出1@@@2@@@3@@@4@@@5@@@
      		console.log(res6);	//12345
                 
    • 正則文法記錄
      • {n} 表示出現n次;{m,n} 出現m-n次;{m,} m次以上;表示至少一次
      • *表示0個或多個;?表示0個或1個
      • ^表示開頭;$表示結尾
      • .表示任意字元
      • \表示轉義字元;比如查詢是否含有. 則寫為 /\./
      • 構造函數定義正則使用轉義字元\ 需要注意:var reg = new RegExp("\\.","i"); 等價于 var reg = /\./;
      • 其他文法不多講,有需要可以去翻手冊
    • 小練習:檢測手機号碼合法性
      /*
      			檢查手機号是否合法:1開頭,第二位3-9任意數,三位之後任意數9個
      		*/ 
      		var phone = "13583404829";
      		var reg2 = /^1[3-9][0-9]{9}$/;
      		console.log(reg2.test(phone));  //輸出true
                 

繼續閱讀