前言:
一開始我是拒絕學正規表示式的,暑假看慕課上的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,表示多行模式 正規表示式的元字元包括 注意 模式中使用的...