-
1.什么是正則表達(dá)式?
- 正則表達(dá)式就是對(duì)字符串操作的一種邏輯公式
-
2.正則表達(dá)式的作用?
- 2.1 在"字符串"查找是否包含指定子串
- 2.2從字符串中提取指定子串
- 2.3對(duì)字符串中指定的內(nèi)容進(jìn)行"替換"
-
通過(guò)字符串方法
-
1. 字符串查找
let str = "123abc456"; let index = str.indexOf("abc"); let index = str.lastIndexOf("abc"); let flag = str.includes("abc");
-
2. 字符串提取
let str = "123abc456"; let startIndex = str.indexOf("a"); console.log(str.substr(startIndex, "abc".length));
-
3. 字符串替換
let str = "123abc456"; str.replace("abc", "it666");
-
-
通過(guò)正則表達(dá)式
-
1.利用正則表達(dá)式匹配(查找)
- 注意點(diǎn): 默認(rèn)情況下在正則表達(dá)式中是區(qū)分大小寫(xiě)的
let str = "123abc456"; // 1.創(chuàng)建一個(gè)正則表達(dá)式對(duì)象 // 2.指定匹配的規(guī)則 // 注意點(diǎn): 默認(rèn)情況下在正則表達(dá)式中是區(qū)分大小寫(xiě)的 let reg = new RegExp("A"); // 如果不想讓正則表達(dá)式區(qū)分大小寫(xiě), 還可以給構(gòu)造函數(shù)傳入第二個(gè)參數(shù)"i" let reg = new RegExp("A", "i"); // 3.用正則表達(dá)式的test方法匹配 let res = reg.test(str); console.log(res); // true
-
需求: 查找字符串中是否包含日期
- 通過(guò)字面量來(lái)創(chuàng)建正則表達(dá)式對(duì)象
let str = "abc2020-1-11def"; // 通過(guò)構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對(duì)象 let reg = new RegExp("\\d{4}-\\d{1,2}-\\d{1,2}"); // 通過(guò)字面量來(lái)創(chuàng)建正則表達(dá)式對(duì)象 let reg = /\d{4}-\d{1,2}-\d{1,2}/; let res = reg.test(str); console.log(res);
-
-
2.通過(guò)正則表達(dá)式提取符合規(guī)則的字符串 (match方法)
- 注意點(diǎn): 默認(rèn)情況下在正則表達(dá)式中一旦匹配就會(huì)停止查找
- 如果想繼續(xù)查找下去, 通過(guò)字面量的方式只需要在末尾加上g
let str = "abc2020-1-11def2019-11-11sadxsa"; // 注意點(diǎn): 默認(rèn)情況下在正則表達(dá)式中一旦匹配就會(huì)停止查找 // 如果想繼續(xù)查找下去, 通過(guò)字面量的方式只需要在末尾加上g let reg = /\d{4}-\d{1,2}-\d{1,2}/g; // 調(diào)用字符串的match方法會(huì)將提取到的字符串放到一個(gè)偽數(shù)組中返回給我們 let res = str.match(reg); console.log(res); // ["2020-1-11", "2019-11-11"] console.log(res[0]); // 2020-1-11 console.log(res[1]); // 2019-11-11
-
3.通過(guò)正則表達(dá)式替換符合規(guī)則的字符串 (replace方法)
- replace 方法前面一個(gè)參數(shù)可以接收一個(gè)正則表達(dá)式對(duì)象
let str = "abc2020-1-11def2019-11-11abc"; let reg = /\d{4}-\d{1,2}-\d{1,2}/g; // 前面一個(gè)參數(shù)可以接收一個(gè)正則表達(dá)式對(duì)象 let newStr = str.replace(reg, "it666"); console.log(str); // abc2020-1-11def2019-11-11abc console.log(newStr); // abcit666defit666abc