一、什麼是正則表達式
正則表達式,簡稱正則,是指一個用來描述符合某個規則的字符串的表達式。其可以快速檢索、替換文本、驗證數據格式、提取數據等。
正則表達式有自己的語法規則,常用的符號有:點號(.)、星號(*)、加號(+)等等。RegExp是JavaScript語言內置的正則表達式對象,可以方便地進行正則表達式的匹配,匹配結果可以用數組存儲。
二、正則表達式的基本用法
在JavaScript中,使用正則表達式需要先將其包裝成一個RegExp對象。包裝方式有兩種:字面量方式和構造函數方式。使用字面量方式可以在代碼中直接表示正則表達式,而使用構造函數方式則可以在運行時從字符串中解析出正則表達式。
// 字面量方式 let reg1 = /a/; // 構造函數方式 let reg2 = new RegExp('a');
其中,兩者表達結果相同。
三、正則表達式縮寫
對於一些常見的字符,我們可以使用縮寫的方式來表示,以簡化我們的代碼。
常用縮寫:
.
: 匹配除換行符(\n)以外的任意字符\d
: 匹配數字字符,即0-9之間的數字\D
: 匹配非數字字符\w
: 匹配字母,數字和下劃線字符\W
: 匹配非字母和數字字符,即特殊字符\s
: 匹配空格和製表符\S
: 匹配非空格和製表符的字符
let reg = /\d/; // 匹配數字 // 判斷字符串是否包含數字 if (reg.test('Hello World1')) { console.log('包含數字'); } else { console.log('不包含數字'); }
四、正則表達式的篩選應用
我們可以使用正則表達式來篩選出符合某些規則的字符串,其中最常見的要數篩選關鍵字了。
下面是一個用正則表達式篩選關鍵字的例子。
// 待篩選字符串 let str = 'this is a test string for regex'; // 關鍵字 let keyWord = 'regex'; // 創建正則表達式對象 let reg = new RegExp(keyWord, 'ig'); // 篩選出所有包含關鍵字的字符串 let results = str.match(reg); console.log(results); // ["regex"]
五、正則表達式中的特殊字符
在正則表達式中,有一些特殊字符,它們有着不同的含義,在使用時需要注意。
常見特殊字符:
^
: 匹配輸入字符串開始的位置$
: 匹配輸入字符串結束的位置*
: 匹配前面的字符零次或多次+
: 匹配前面的字符至少一次或多次?
: 匹配前面的字符零次或一次|
: 匹配多個模式中的一個,相當於”或”[]
: 匹配包含在中括號內的任意一項{n,m}
: 匹配前面字符至少n次,最多m次
// 匹配以 hello 開頭的字符串 let reg1 = /^hello/; // 匹配以 world 結尾的字符串 let reg2 = /world$/; // 匹配包含 hello 或 world 的字符串 let reg3 = /hello|world/; // 匹配長度在 3~5 之間的字符串 let reg4 = /^.{3,5}$/;
六、正則表達式的高級用法
除了基本用法,正則表達式還有更高級的用法,如懶惰匹配、正則表達式嵌套、斷言等等。
這裡舉一個懶惰匹配的例子。懶惰匹配是指正則表達式儘可能地少匹配字符,其作用在於有些字符串的匹配結果可能會受到後面的字符影響,比如出現重複字符。在這種情況下,懶惰匹配可以最小化匹配結果的干擾。
// 貪婪匹配 let reg1 = /a.+/; console.log('abcdabcde'.match(reg1)); // ["abcde"] // 懶惰匹配 let reg2 = /a.+?/; console.log('abcdabcde'.match(reg2)); // ["abc"]
七、結語
以上就是關於正則表達式的一些基本知識和應用,學會使用正則表達式不僅可以提高我們的編程效率,也可以讓我們寫出更加優雅和簡潔的代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/152612.html