js 中 正則表達式使用 創建正則對象和test方法使用 /* 創建正則表達式的對象 語法: var 變數 = new RegExp("正則表達式","匹配模式") 或者 var 變數 = /正則表達式/ 匹配模式: i:忽略大小寫 。 g:全局匹配模式 */ //var reg = new Reg ...
- 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
- 創建正則對象和test方法使用