RegExp入門筆記

2022-02-09 18:41:33 字數 1432 閱讀 1919

前言:

一開始我是拒絕學正規表示式的,暑假看慕課上的php高階課程裡有一章是專門講正則,然後我思考的幾秒鐘,就略過了。理由和大家一樣,畏懼,聽很多人說正則很難,然後就果斷放棄。但是昨天看到知乎上有個話題,問大家為什麼不喜歡正則,然後看到下面很多大神說正則處理字串很有用,很有用,很有用,甚至有人說正則很有趣! 好吧,既然有用的東西,就一定要學,一定要學,一定要學!想當年我學微觀經濟這門課都是拒絕的,頭疼的,但是後來期末備考卻發現它的樂趣。所以,任何事情,只要用心投入,一定會收穫到樂趣。

什麼是regexp?

描述字串規則的表示式。

語法

regexpobj.test(str)

測定正規表示式與指定字串是否匹配。只要指定字串中包含正規表示式,則返回true,否則返回false。

regexpobj.exec(str)

更強大的搜尋,更詳盡的結果:index,過程的狀態:lastindex

錨點

用來匹配乙個位置。

字元類

匹配一類字元中的乙個

元字元

具有特殊意義的字元

量詞

表示出現的次數

例子:/^1\d$/ 表示匹配乙個以1開頭,一共有11個數字的字串

轉義符

需要匹配的字元是特殊字元,所以需要轉義一下啦

例子:/@163\.com$/ 表示匹配乙個以@163.com結束的字串,其中.是特殊字元,需要轉義

多選分支

或用|表示

例子:/b(a|e)d/ ===/b[ae]d/ 表示匹配bad或者bed

/\.(png|jpg|gif|jpeg)$/ 表示匹配格式

字元類是一種特殊的多選分支

捕獲

儲存匹配到的字串,以便日後再用。

()表示捕獲

(?:)表示不捕獲

支援正規表示式的 string 物件的方法

str.match(regexp)

獲取匹配的字串

str.replace(regexp/substr,replacement)

替換與正規表示式匹配的子串。

btw:

正規表示式的匹配只做一次,因此需要用到屬性g表示全域性模式。

正規表示式中,量詞的惰性與貪婪模式的區別?

RegExp物件方法

test 方法 該方法用於檢測乙個字串是否匹配某個模式 基本語法 regexpobject.test str param 引數 str是需要檢測的字串 return 返回值 如果字串str中含有與regexpobject匹配的文字的話,返回true,否則返回false var str longen ...

RegExp 建構函式

在 es5 中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於 var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝。var...

JS高階程式設計學習筆記之RegExp型別

建立正規表示式 字面量形式定義正規表示式 var expression pattern flags pattern部分可以使任意簡單或複雜的正規表示式。每個正規表示式可以帶有乙個或多個標誌。標誌為 g,表示全域性模式。i,表示不區分大小寫。m,表示多行模式 正規表示式的元字元包括 注意 模式中使用的...