JS正則 RegExp概述

2022-06-14 09:51:08 字數 1774 閱讀 4989

ecmascript通過regexp型別支援正規表示式。

格式:

let expression = /pattern/flags
pattern(模式):

flags(標記):

說明:所有的元字元在模式中必須轉義(\),包括:

(   [      ?   *   +   .

元字元在正規表示式中都有一種或多種特殊功能,所以要匹配上面這些字元本身,就必須使用反斜槓來轉義。示例:

//

匹配第乙個 "bat" 或 "cat",忽略大小寫

let pat1 = /[bc]at/i

//匹配第乙個 "[bc]at",忽略大小寫。這裡的兩個符號也要在匹配的內容中

let pat2 = /\[bc\]at/i

//匹配所有以 "at" 結尾的三字元組合,忽略大小寫

let pat3 = /.at/gi

//匹配所有 ".at",忽略大小寫

let pat4 = /\.at/gi

上面**中的正規表示式都是用字面量形式定義的。正規表示式也可以使用regexp建構函式來建立,它接收兩個引數:模式字串和標記字串(可選的)。示例:

let pat1 = new regexp("[bc]at","i")

//等同於

let pat1 = /[bc]at/i

由於建構函式兩個引數都是字串,所有的元字元都必須二次轉義。示例:

每個regexp例項都有謝列屬性,提供有關模式的各方面資訊

regexp例項的主要方法是exec(),主要用於配合捕獲組使用。這個方法只接收乙個引數,即要應用模式的字串。如果找到的匹配向,則返回包含第乙個匹配資訊的陣列;如果沒找到,則返回null。返回的陣列雖然是array的例項,但是包含兩個額外的屬性:index和input:

示例:

let str = "mom and dad and baby"let pat = /and/gi

let matche1 =pat.exec(str)

console.log(pat.lastindex);

let matche2 =pat.exec(str)

console.log(pat.lastindex);

console.log(matche1);

console.log(matche2);

輸出結果:

正規表示式的另乙個方法是test(),接收乙個字串引數。如果輸入的文字與模式匹配,則引數返回true,否則返回false。

示例:

let str = '123-45-6789'let pat = /\d-\d-\d/pat.test(str)  

//true

es6之前,字串物件共有4個方法,可以使用正規表示式:match()replace()search()split()es6 將這 4 個方法,在語言內部全部呼叫regexp的例項方法,從而做到所有與正則相關的方法,全都定義在regexp物件上。

JS常用正則表達 RegExp物件

本來想細緻整理一下正規表示式和regexp物件的,但是發現網上完善的教程一抓一大把,於是這篇文章只會記錄一些常常用到的正規表示式以及稍做分析。轉義 b 匹配字元b,b 匹配單詞邊界,a 匹配a aa aaa.a 只匹配a 雙重轉義 這兩個模式起的作用是一樣的,但從普通正規表示式到regexp物件,需...

js正規表示式RegExp

1 關於什麼是regexp?regexp 是正規表示式的縮寫。2 定義與建立 regexp 1 採用new運算子 var reg new regexp pattern flags 2 採用字面量方式 var reg pattern flags 3 修飾符 i 忽略大小寫 g 全域性匹配 m 多行匹配...

js 正規表示式物件 RegExp

語法 var patt new regexp pattern,modifiers 或更簡單的方法 var patt pattern modifiers 用 來表示表示式 i 修飾符是用來執行不區分大小寫的匹配。g 修飾符是用於執行全文的搜尋 而不是在找到第乙個就停止查詢,而是找到所有的匹配 注意 當...